2009-07-30 5 views
2

新しいモデルの投稿時に、私は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 

答えて

0

ポストアクションにリダイレクトすることはできません。アクションを取得するだけです。

0

認証後に後で処理するために投稿オブジェクトを格納することはできますが、実際には実行したくありません。

#createではなく(または加えて)#newメソッドで認証を求めるだけではどうですか。こうすることで、ユーザーはフォームに記入される前に認証されます。

+0

回答ありがとうございます。私がやったことは、モデルに承認された状態を追加することでした。私はサインインしていない権限のないユーザーからの作成を許可し、初期状態は無効です。次に、作成アクションで、サインインされていない場合は、showアクションへのパスが保存され、ログイン/新規ユーザーページにリダイレクトされます。彼らがログインしなければ、モデルは決して検証されず、後でレーキタスクで刈り取られます。彼らがログインすると、彼らは彼らが作成され、彼らがlogged_inている場合、モデルを '認可'するショーアクションにリダイレクトされます。 –

関連する問題