質問

私は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が真等しいます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top