2016-05-16 9 views
1

は、私はいくつかのコンテキストの検証を持っている:factory_girlとコンテキストでモデルを作成するにはどうすればよいですか?私のモデルで

class User 
validate :permissions, on :admin 

def permissions 
    error.add(:permissions, 'Must be set as admin') unless permissions.include? :admin 
end 
end 

と使用方法は簡単です。

user.save(context: :admin) 

質問です:どのように私は検証がfactory_girl経由adminコンテキストで実行されていることを確認できますか?例えば。 create :user, context: :adminは機能しません。

+0

あなたがFactoryGirlを使用してユーザーオブジェクトを作成するときには、どんなエラーが出るのですか?何がうまくいきませんか? – Bustikiller

+0

'create:user'を実行するとエラーはありません。しかし、 'create:user、context::admin'を実行すると、定義されていません。context = '' – Elmor

+0

モデルにattribute_accessorsが定義されていますか? – Bustikiller

答えて

1

factory_girlは、そのオプションを使用してcreateまたはsaveへの道を提供していないと思います。ただし、factory_girlのbuild

FactoryGirl.build(:user).save!(context: :admin) 

またはattributes_forでそれを回避することができます。

User.create!(FactoryGirl.attributes_for(:user), context: :admin) 
+0

アイデアありがとう、ちょうどそのようなことをしていた – Elmor

関連する問題