ruby-on-rails – FactoryGirl与多个模型的复杂关联
发布时间:2020-12-16 23:32:28 所属栏目:百科 来源:网络整理
导读:我正在试图弄清楚如何编写属于2个不同模型的工厂,每个模型应该具有相同的父模型.这是人为的示例代码: class User ActiveRecord::Base has_many :widgets has_many :suppliers attr_accessible :usernameendclass Widget ActiveRecord::Base belongs_to :use
我正在试图弄清楚如何编写属于2个不同模型的工厂,每个模型应该具有相同的父模型.这是人为的示例代码:
class User < ActiveRecord::Base has_many :widgets has_many :suppliers attr_accessible :username end class Widget < ActiveRecord::Base belongs_to :user has_many :parts attr_accessible :name end class Supplier < ActiveRecord::Base belongs_to :user has_many :parts attr_accessible :name end class Part < ActiveRecord::Base belongs_to :supplier belongs_to :widget attr_accessible :name end 这是我到目前为止所拥有的: factory :user do name 'foo' end factory :widget do association :user name 'widget' end factory :supplier do association :user name 'supplier' end factory :part do association :widget association :supplier name 'part' end 这个问题是part.widget.user!= part.supplier.user和它们必须是相同的. 我试过以下但没有成功: factory :part do association :widget association :supplier,user: widget.user name 'part' end 有什么建议?或者在创建零件后是否必须对其进行修改? 谢谢 解决方法
我相信你可以用
callback做到这一点:
factory :part do association :widget association :supplier name 'part' after(:create) do |part| user = FactoryGirl.create(:user) part.widget.user = part.supplier.user = user end end 另见:Get two associations within a Factory to share another association (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |