ruby-on-rails - rails关联查询 - rails view教程



Rails has_many:通过条件和建立协会 (1)

has_many :groups, :through => :group_contacts, :conditions => {:published => true}

要么

has_many :groups, :through => :group_contacts, :conditions => {"groups.published" => true}

https://ffff65535.com

我有问题建立一个has_many :through的协会has_many :through条件。 我有这个模型:

class Contact < AR
  has_many :group_contacts
  has_many :groups, :through => :group_contacts, :conditions => {:groups => {:published => true}}
end

当我尝试从联系人实例化组时,会发生问题。 用上面的语法,我得到一个错误:

contact.groups.build
=> ActiveRecord::UnknownAttributeError: unknown attribute: groups

但是,当我使用下面的语法它的作品:

has_many :groups, :through => :group_contacts, :conditions => ['groups.published = ?', true]

contact.groups.build
=> #<Group id: nil, name: nil, description: nil, created_at: nil, updated_at: nil, published: true>

我在这个问题中看到了一个确切的问题。 据说一张票将被提交这个错误(回到前导轨3版本)。 我无法找到任何东西,但在rails 3.0.x

我正在使用3.0.8。 有没有其他人发现这个问题?

进一步说明

我还发现,当我建立团队时,实际上忽略了我在建立团队时的条件。 我上面的版本published => true的唯一原因是因为它是数据库中的默认值。

这似乎是一个回归,任何人都可以验证这一点?





has-many-through