gpt4 book ai didi

ruby-on-rails - has_many 通过附加属性

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

我们如何通过关联在 has_many 中设置附加参数?

谢谢。
尼勒什

最佳答案

这篇博文有完美的解决方案:http://www.tweetegy.com/2011/02/setting-join-table-attribute-has_many-through-association-in-rails-activerecord/

该解决方案是:手动创建您的“:through 模型”,而不是在您附加到其所有者的数组时通过自动方式创建。

使用该博客文章中的示例。您的模型在哪里:

class Product < ActiveRecord::Base
has_many :collaborators
has_many :users, :through => :collaborators
end

class User < ActiveRecord::Base
has_many :collaborators
has_many :products, :through => :collaborators
end

class Collaborator < ActiveRecord::Base
belongs_to :product
belongs_to :user
end

以前你可能已经去了: product.collaborators << current_user .

但是,要设置附加参数(在此示例中为 is_admin ),而不是附加到数组的自动方式,您可以手动执行,如下所示:
product.save && product.collaborators.create(:user => current_user, :is_admin => true)
这种方法允许您在保存时设置附加参数。注意。 product.save如果模型尚未保存,则是必要的,否则可以省略。

关于ruby-on-rails - has_many 通过附加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363702/

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