0

次のコードがあります。

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 ステートメントを行末に移動した場合も同様です。

何か案は?

どうもありがとう

4

1 に答える 1

0

Rails Guides では、これを次の方法で行うように指示されています。

render :controller=>"admin", :action=>"login" and return

于 2012-10-30T22:44:19.370 に答える