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
显然,第一个将是处理这个问题的最好方法。