Rails has_many别名

在我的用户模型中,我可以:

has_many :tasks 

并在我的任务模型:

 belongs_to :user 

然后,假设外键“user_id”存储在任务表中,我可以使用:

 @user.tasks 

我的问题是,如何声明has_many关系,以便可以将用户的任务引用为:

 @user.jobs 

… 要么 …

 @user.foobars 

感谢一堆。

给这个镜头:

 has_many :jobs, foreign_key: "user_id", class_name: "Task" 

请注意:as用于多态关联一样 。

你也可以使用alias_attribute如果你还想把它们作为任务来引用的话:

 class User < ActiveRecord::Base alias_attribute :jobs, :tasks has_many :tasks end 

你可以用两种不同的方法 一个是用“as”

 has_many :tasks, :as => :jobs 

要么

 def jobs self.tasks end 

显然,第一个将是处理这个问题的最好方法。