制作一个命名范围:
class Activity
scope :active, where("active = ?", true)
has_many :attachments, :as => :attachable
accepts_nested_attributes_for :attachments
end
a = Activity.active
工作正常,但关联a.attachments
没有(NoMethodError:未定义方法`附件')
答案 0 :(得分:0)
当你引用这样的范围时,你会得到一个ActiveRecord::Relation
对象,而不是一个模型实例,这就是Rails抱怨没有关联方法的原因。你可以做这样的事情,例如
a.first.attachments
或
att = a.includes(:attachments)
然后访问属于此集合中的活动的附件
att[0].attachments