gpt4 book ai didi

ruby-on-rails - Rails has_many :through with conditions and building associations

转载 作者:行者123 更新时间:2023-12-04 06:27:04 25 4
gpt4 key购买 nike

我在建立一个 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>

我在 this question 中看到了对确切问题的引用.据说会为这个错误提交一张票(回到 pre-rails 3 版本)。但是我在 rails 3.0.x 上找不到任何东西.

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

补充说明:

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

这似乎是一个回归,其他人可以验证这一点吗?

最佳答案

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

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

关于ruby-on-rails - Rails has_many :through with conditions and building associations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7067907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com