命名范围有效但协会没有

时间:2012-07-26 06:15:31

标签: ruby-on-rails ruby-on-rails-3

制作一个命名范围:

class Activity
  scope :active, where("active = ?", true)

  has_many :attachments, :as => :attachable 
  accepts_nested_attributes_for :attachments
end

a = Activity.active工作正常,但关联a.attachments没有(NoMethodError:未定义方法`附件')

1 个答案:

答案 0 :(得分:0)

当你引用这样的范围时,你会得到一个ActiveRecord::Relation对象,而不是一个模型实例,这就是Rails抱怨没有关联方法的原因。你可以做这样的事情,例如

a.first.attachments

att = a.includes(:attachments)

然后访问属于此集合中的活动的附件

att[0].attachments