0

做了一个命名范围:

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

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

a = Activity.active工作正常,但关联a.attachments不行(NoMethodError:未定义的方法“附件”)

4

1 回答 1

0

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

a.first.attachments

或者

att = a.includes(:attachments)

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

att[0].attachments
于 2012-07-26T07:41:01.127 回答