gpt4 book ai didi

ruby-on-rails - factory_girl 4.1 中的 has_and_belongs_to_many 关联

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

我是 factory_girl 的新手,并试图弄清楚如何有效地为以下模型生成工厂:

class Company < ActiveRecord::Base
has_and_belongs_to_many :tags
end

class Tags < ActiveRecord::Base
has_and_belongs_to_many :companies

validates :type , :inclusion => { :in => %w(market location) }
end

我已经查看了 StackOverflow 上的先前答案(包括 this one ),但是它们中的大多数已经过时和/或没有对问题的正确答案。有没有人可以帮助用 Factorygirl 为这两个对象定义工厂?

更新

这是我到目前为止所想到的
FactoryGirl.define do
factory :tag do
id 448
trait :market do
type "market"
end
trait :location do
type "location"
end
name "software"
end

factory :company do
id 1234
name "Apple Inc."
factory :company_with_tags do
#setting the default # of tags for companies
ignore do
tag_count 2
end

after(:create) do |company , evaluator|
FactoryGirl.create_list(:tag , evaluator.tag_count , company: company)
end
end
end
end

最佳答案

我认为问题是关联名称指定不正确。一个 Tag有很多公司,而不是一家,所以:

after(:create) do |company , evaluator|
FactoryGirl.create_list(:tag , evaluator.tag_count , companies: [company])
end

作为旁注,您希望避免使用 type作为列名,除非您尝试建立多态关系。

关于ruby-on-rails - factory_girl 4.1 中的 has_and_belongs_to_many 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077902/

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