Rails アプリには user と user_level があります。ユーザー has_many user_levels。次のように FactoryGirl データセットを構築します。
factory :user_level do
position "admin"
user
end
factory :user do
login 'testuser'
password "password1"
#user_levels
after(:build) do |user|
user.user_levels << FactoryGirl.build(:user_level, :user => user)
end
end
問題は、user_level の位置をたとえば sales にリセットする方法です。以下は機能しませんでした:
ul = FactoryGirl.attributes_for(:user_level, :position => 'admin')
user = FactoryGirl.create(:user, :login => 'test', :password => 'password',
:user_levels => ul)
エラーは「undefined method 'each'」です。に置き換えるattributes_for
とbuild
、同じエラーが生成されます。工場の user_level の位置をリセットする正しい方法は何ですか? ありがとう。