【发布时间】:2014-01-11 22:10:51
【问题描述】:
我很难设置 Factory Girl 来模仿我的模特联想。我认为问题在于我没有正确设置“用户通过订阅有一个计划”关联。非常感谢任何帮助!
我收到此错误:
Failure/Error: let(:plan) {FactoryGirl.create(:plan, :user => user) }
NoMethodError:
undefined method `user=' for #<Plan:0x007fd836a1a340>
我的模型如下:
用户.rb
has_one :subscription
has_one :plan, :through => :subscription
has_many :projects
项目.rb
belongs_to :user
Plan.rb
has_many :subscriptions
订阅.rb
belongs_to :plan
belongs_to :user
还有我的 FactoryGirl 代码
FactoryGirl.define do
factory :user do
first_name "Joel"
last_name "Brewer"
email { "#{first_name}.#{last_name}@example.com".downcase }
password "booyabooya"
password_confirmation "booyabooya"
user_type "entrepreneur"
end
factory :plan do |f|
f.association :user
f.plan_type "entrepreneur"
f.plan_level "bronze"
f.user_project_limit '1'
end
factory :subscription do |f|
f.association :user
f.association :plan
f.stripe_card_token "Test card token"
f.stripe_customer_token "Test customer token"
f.email "joel.brewer1@example.com"
end
factory :project do
title "Sample Project"
user
end
end
【问题讨论】:
-
如果您已经知道问题的根源,为什么不解决它?您只是没有在计划中定义
user关系,所以 rails 无法弄清楚。
标签: ruby-on-rails ruby factory-bot