【发布时间】:2017-01-18 12:13:37
【问题描述】:
我有三个模型 offer_ticket、event 和 offer,并且下面有三个它们各自的工厂是模型和工厂给定我得到错误 stack level too deep。 有循环执行offer_ticket-to-event,event-to-offer,然后offer-to-offer_tickets 建议我一个解决方案如何消除此错误
offer_Ticket
class Offer Ticket < Active Record::Base
belongs_to :event
end
事件
class Event < Active Record::Base
has_many :offers , dependent: :restrict_with_error
has_many :offer_tickets , dependent: :restrict_with_error
end
报价
class Offer < Active Record::Base
has_many :offer_tickets , dependent: :restrict_with_error
belongs_to :event
end
他们各自的工厂如下所示
offer_tickets
Factory Girl define do
factory :offer_ticket do
venue_row_id 1
sale_id 1
status "available"
seat_number 1
association(:event)
end
end
事件
Factory Girl define do
factory :event do |f|
f.name { Faker::Name.name }
f.starts_at { Faker::Date.backward(Random.rand(20)).to_date }
f.description { Faker::paragraph }
after(:build) do |event|
create(:offer, event: event)
end
end
end
优惠
Factory Girl define do
factory :offer do
price 1
proxy 1
multiple 1
cancel-others 1
after(:build) do |offer|
create(:offer_ticket, offer: offer)
end
association(:event)
end
结束
【问题讨论】:
-
你能添加导致这种情况的 rspec 吗?
标签: ruby-on-rails-3 rspec factory-bot