私のサイトでは、ユーザーが認証されているかどうかを確認しています。私のコントローラーには次のものがあります。
def index
login_required
@profile = current_user.profile ### line 9
..
次に、application_controllerに、login_requiredメソッドの定義があります。
def login_required
unless current_user
redirect_to root_path, :notice => "Please login first"
end
end
私のログはルートへのリダイレクトが行われていることを示していますが、それでも実際にはルートパスに移動しておらず、コントローラー->インデックスに戻り、「@ profile=current_user.profile」という行でエラーが発生します。 。これがログです。
Started GET "/meetings" for 127.0.0.1 at 2012-12-05 12:18:12 -0800
Processing by xyzController#index as HTML
Redirected to http://localhost:3000/
Completed 500 Internal Server Error in 1ms
NoMethodError (undefined method `profile' for nil:NilClass):
app/controllers/xyz_controller.rb:9:in `index'
リダイレクトしていると表示されているのに、ルートパス(ホームページ)にリダイレクトされないのはなぜですか?何か案は?ありがとう。