そのため、私のアプリケーションのホームページには、ajax リクエストを介して呼び出すことができるさまざまなアクションがあります。ユーザーがサインインすると、これらの呼び出しを行うことができます。ユーザーがサインインしていない場合、ユーザーが ajax 呼び出しに移動するリンクのいずれかをクリックすると、ユーザーをサインイン ページにリダイレクトしたいと考えています。
私の sessions_helper には、これらのアクションのコントローラーで before_filter として使用されるメソッドがあります。
def signed_in_user
unless signed_in?
store_location
redirect_to signin_url, notice: "Please sign in."
end
end
ただし、呼び出しは ajax 経由で行われるため、これらの呼び出しではリダイレクトは機能しません。(記録のために、それは非 ajax 呼び出しで動作します) 例:
<%= link_to new_picture_path, remote: true do %>
Add New
<% end %>
このリダイレクトを ajax 経由で機能させる方法はありますか? Rails v3.2.8 と jquery を使用しています。他のいくつかの投稿が示唆しているように、次のメソッドをアプリケーションコントローラーに追加しようとしました:
def redirect_to(options = {}, response_status = {})
if request.xhr?
render(:update) {|page| page.redirect_to(options)}
else
super(options, response_status)
end
end
しかし、「MissingTemplate pictures/update」というエラーが表示されます。そして、それらの他の投稿のいくつかは、私がプロトタイプではなくjqueryを使用しているためであることを示していると思います. どんな助けでも大歓迎です。