我正在使用具有特征的Factory Girl,并试图弄清楚如何设置答案'价值低于:
factory :example_factory do
user 'TEST'
id 'blah'
end
trait :example_trait do
questions [
{
question: "blah",
answer: "#{answer}"
},
]
end
我已经尝试了以下方法,但仍然遇到了" ArgumentError:trait not registered:answer"。
FactoryGirl.build(:example, :example_trait, answer: 'custom')
还尝试将transient { answer ' ' }
添加到特征中。
还尝试将attr_accessor
字段添加到Example
类。
class Example
attr_accessor :questions, :answer
end
答案 0 :(得分:0)
我想出来了。使用FactoryGirl,在动态设置属性时,必须将属性包装在{}中。由于这是一个内部有散列的数组,因此花括号需要位于整个数组的外部。
factory :example_factory do
transient do
ans ''
end
user 'TEST'
id 'blah'
end
trait :example_trait do
questions --> {[
{
question: "blah",
answer: ans
},
]} <--
end