新しいモデルの投稿時に、私はAuthlogicによる認証を確認しています。作成要求にbefore_filter
があります。それはrequire_user
と呼んでいます。ユーザーセッションが正常に作成されると、redirect_back_or_default(default)
メソッドが呼び出されます。問題は、リクエストが保存されたURIに投稿される必要があることです。私はメソッドを格納し、redirect_to
に入力しようとしましたが、動作しません。何か案は?railsはredirect_toのメソッドを指定します
# called before successful authentication with before_filter
def require_user
unless current_user
store_location
flash[:notice] = "You must be logged in to access this page"
redirect_to new_user_session_url
return false
end
end
def store_location
session[:return_to] = request.request_uri
session[:return_to_method] = request.request_method
end
# called after successful authentication
def redirect_back_or_default(default)
redirect_to((session[:return_to] ? session[:return_to] : default), :method => session[:return_to_method])
session[:return_to] = nil
session[:return_to_method] = nil
end
回答ありがとうございます。私がやったことは、モデルに承認された状態を追加することでした。私はサインインしていない権限のないユーザーからの作成を許可し、初期状態は無効です。次に、作成アクションで、サインインされていない場合は、showアクションへのパスが保存され、ログイン/新規ユーザーページにリダイレクトされます。彼らがログインしなければ、モデルは決して検証されず、後でレーキタスクで刈り取られます。彼らがログインすると、彼らは彼らが作成され、彼らがlogged_inている場合、モデルを '認可'するショーアクションにリダイレクトされます。 –