查看关于关联的文档,我设法将我的类设置为使用has_many, :through
。但是,我似乎无法找到关于如何实际使用该关联的任何示例。
我的User
模型has_many :attendees
和has_many :events, through: :attendees
。我的Event
模型has_many :attendees
和has_many :users, through: :attendees
。
参加者模型:
class Attendee < ActiveRecord::Base
attr_accessible :status
validates_inclusion_of :status, in: [:performing, :invited, :going, :maybe]
belongs_to :user
belongs_to :event
def status
read_attribute(:status).to_sym
end
def status=(value)
write_attribute(:status, value.to_s)
end
end
我尝试使用以下代码:
at1 = Attendee.new(user: u1, event: e1)
at1.status = :invited
at1.save
不出所料,我在user
和event
时收到了批量分配错误。除了要为attr_accesible
和user
声明event
之外,似乎也是如此。我将如何在此处使用关联,并设置自定义status
属性?
答案 0 :(得分:0)
绝对不能宣称attr_accessible
。这就是你所缺少的。
请记住attr_accessor
是另一回事。有关详情,请查看:Difference between attr_accessor and attr_accessible
另请注意,Rails 4中已弃用attr_accessible
以支持Strong Parameters,从而有效地将属性的所有白名单从模型移动到控制器。