0

この動作が正常かどうかはわかりませんが、正常な場合は次のようになります。

render js: "window.location.pathname ='#{new_user_session_path}';"

window.location.pathname = '/user/sign_in';私のコントローラーでは、行を実行してリダイレクトに成功する前に、テキストが短時間表示されます。

完全なコントローラーアクションは次のとおりです。

defvote_down
    user_signed_inの場合?
      current_user.vote_exclusively_against(@deal = Deal.find(params [:id]))

      レンダリング:partial =>'ディール/パーシャル/インタラクション'、
        :locals => {:deal => @deal、:votes_for => @ deal.votes_for、:votes_against => @ deal.votes_against}
    そうしないと
      render js: "window.location.pathname ='#{new_user_session_path}';"
      flash [:error]='投票するにはサインインしてください。'
    終わり
  終わり

これを防ぎ、そのテンプレートを直接レンダリングするにはどうすればよいですか?

4

1 に答える 1

1

Railsコントローラーのルーティングを使用して、new_user_session_pathにリダイレクトしないのはなぜですか?

respond_to do |format|
   format.html { redirect_to new_user_session_path, error: 'Please sign in to vote.' }
end
于 2012-11-02T20:56:24.920 に答える