factory_girl 个临时属性的未定义方法
Undefined method for factory_girl transient attributes
我正在开发 rails 3 (rails (3.2.13)
) 应用程序,我正在使用 factory_girl_rails (4.5.0)
和 rspec (2.13.0)
。
我有一个 delivery
看起来像这样的工厂
FactoryGirl.define do
factory :delivery do
trait :assigned do
delivery_type 1
end
trait :started do
delivery_type 2
end
factory :delivery_with_jobs do
ignore do
jobs_count = 2
duration = 10
end
after(:create) do |delivery, evaluator|
create_list(:job, evaluator.jobs_count, delivery: delivery, client: delivery.client)
end
end
end
end
我尝试像这样在我的规范中实例化
let!(:delivery_with_jobs) {
FactoryGirl.create(
:delivery_with_jobs,
:started,
jobs_count: 3,
user: user,
current_user: user,
account: user.account,
client: client
)
}
问题是我在 运行 测试时以及尝试在 rails 控制台中创建工厂时不断收到 NoMethodError: undefined method 'jobs_count' for #<FactoryGirl::SyntaxRunner:0x000000079e5f00>
。我先是 factory_girl
的低版本 and have found this post。所以我尝试将关键字更改为 ignore
但没有帮助,所以我尝试升级工厂女孩也没有帮助。
当我从 FactoryGirl.create(:delivery_with_jobs)
.
中省略 jobs_count 参数时,我也会遇到同样的错误
我是不是做错了什么?您对导致此问题的原因有什么建议吗?
提前致谢。
你的 ignore/transient 块不应该有 =s
ignore do
jobs_count 2
duration 10
end
我正在开发 rails 3 (rails (3.2.13)
) 应用程序,我正在使用 factory_girl_rails (4.5.0)
和 rspec (2.13.0)
。
我有一个 delivery
看起来像这样的工厂
FactoryGirl.define do
factory :delivery do
trait :assigned do
delivery_type 1
end
trait :started do
delivery_type 2
end
factory :delivery_with_jobs do
ignore do
jobs_count = 2
duration = 10
end
after(:create) do |delivery, evaluator|
create_list(:job, evaluator.jobs_count, delivery: delivery, client: delivery.client)
end
end
end
end
我尝试像这样在我的规范中实例化
let!(:delivery_with_jobs) {
FactoryGirl.create(
:delivery_with_jobs,
:started,
jobs_count: 3,
user: user,
current_user: user,
account: user.account,
client: client
)
}
问题是我在 运行 测试时以及尝试在 rails 控制台中创建工厂时不断收到 NoMethodError: undefined method 'jobs_count' for #<FactoryGirl::SyntaxRunner:0x000000079e5f00>
。我先是 factory_girl
的低版本 and have found this post。所以我尝试将关键字更改为 ignore
但没有帮助,所以我尝试升级工厂女孩也没有帮助。
当我从 FactoryGirl.create(:delivery_with_jobs)
.
我是不是做错了什么?您对导致此问题的原因有什么建议吗?
提前致谢。
你的 ignore/transient 块不应该有 =s
ignore do
jobs_count 2
duration 10
end