誰もがこれを通過しましたか?ネストされたフォームのファクトリを設定する
シーンは、ユーザーの作成、上のネストされた形である:
- ユーザーhas_oneのプロフィール
- プロフィールユーザー
はそう私の工場は、このように構成されてbelongs_toのが、私が実行したときテストを実行すると、この結果が表示されます。
Failure/Error: user_attributes[:user_attributes][:profile_attributes] = Factory.attributes_for :profile
NoMethodError:
undefined method `[]=' for nil:NilClass
工場
Factory.define :user do |f|
f.after_build do |user|
f.email '[email protected]'
f.password 'password'
f.password_confirmation 'password'
user.profile ||= Factory.build(:profile, :user => user)
end
end
Factory.define :profile do |f|
f.after_build do |profile|
profile.user ||= Factory.build(:user, :profile => profile)
f.nome 'alguem'
f.sobrenome 'alguem'
f.endereco 'rua x'
f.numero '95'
f.genero 'm'
f.complemento 'casa'
f.bairro 'bairro x'
f.cidade 'cidade x'
f.estado 'estado x'
f.cep '232323'
end
end
Users_spec
describe "CreateUsers" do
before :each do
user_attributes = Factory.attributes_for :user
user_attributes[:user_attributes][:profile_attributes] = Factory.attributes_for :profile
@user = User.new(user_attributes)
end
user_attributes [:user_attributes] [:profile_attributes]を割り当てる前にuser_attributes.inspectを呼び出せますか?あなたのエラーは、user_attributes [:user_attributes]がnilであることを示しているので、[:profile_attributes]でインデックスを作成しようとすると、[] =をnil値に使用しています。 –