CURRENT_USER戻りのTrueClass代わりに工夫を使用してコントローラにユーザー
-
27-09-2019 - |
質問
私はRailsの2.3.8プロジェクトの工夫1.0.8を使用しています。私のコントローラのテストで私が持っています:
context "when current_user is admin" do
should "render" do
sign_in Factory(:admin)
get :index
assert_response :success
end
end
そして、コントローラ自体では、以下のbefore_filterがあります
def redirect_if_not_admin
puts current_user
redirect_to root_path unless current_user.try(:admin?)
end
これは私のテストから出力されます:
true
false
NoMethodError: undefined method `admin?' for true:TrueClass
私はテストでsign_inを使用する場合、だから、のCURRENT_USERはtrueです。私がいないとき、それは間違いなく影響を受けていますので、しかし、CURRENT_USERは、nilです。任意の助けを事前に感謝します。
解決
私は確認を使用しました!代わりに工場で属性を設定するのafter_create /ビルドで、リソースのメソッドやトリックをしました。サイト上で未確認のユーザー(サインアップしたが、それらに送られた確認用のリンクをクリックして、まだ持っていた人)があるときCURRENT_USERが真等しいます。
所属していません StackOverflow