次のコードがあります。
def isLoggedIn
if session[:username].nil?
puts "Not logged in!"
return render :controller=>"admin", :action=>"login"
end
end
そして、このアクションを上部で呼び出してユーザーのステータスを確認する次のコード。
def view_gallery
isLoggedIn
.
.
.
.
\/
return render "view_gallery"
end
私が抱えている問題は、コンソールが「ログインしていません!」と記録しているにもかかわらず、コードが isLoggedIn を超えて実行され続けることです。予想どおり、ユーザーがログインしていないためです。これにより、代替レイアウトがレンダリングされますが、実行されません。アクションのつづりを間違えると (「logib」など)、テンプレートが見つからないというメッセージが表示されるため、render 関数が実行されていることがわかります。
render を redirect_to に変更した場合や、return ステートメントを行末に移動した場合も同様です。
何か案は?
どうもありがとう