In my User model I could have:
has_many :tasks
and in my Task model:
belongs_to :user
Then, supposing the foreign key 'user_id' was stored in the tasks table, I could use:
@user.tasks
My question is, how do I declare the has_many relationship such that I can refer to a User's Tasks as:
@user.jobs
... or ...
@user.foobars
Thanks a heap.
Give this a shot:
has_many :jobs, foreign_key: "user_id", class_name: "Task"
Note, that :as
is used for polymorphic associations.
You could also use alias_attribute
if you still want to be able to refer to them as tasks as well:
class User < ActiveRecord::Base
alias_attribute :jobs, :tasks
has_many :tasks
end
You could do this two different ways. One is by using "as"
has_many :tasks, :as => :jobs
or
def jobs
self.tasks
end
Obviously the first one would be the best way to handle it.