2012-02-16 3 views
3

devise sign_upページを無効にする簡単な方法はありますか? 1ページに登録と承認のためのフォームがありますので、他のページは必要ありません。これらのページを担当するルートを無効にしたいので、ユーザーがusers/sign_upと入力すると、サインアップページには行かないでくださいが、他のページにリダイレクトする必要があります。サインアップ後のデビッドリダイレクト

+0

解決方法を見つけましたか?あなたは 'respond_with'を変更しましたか? – Ashitaka

+0

@Ashitaka 最後に私はデフォルトのルートをすべてスキップし、deviseコントローラにマップされた 'post'ルートと' get'ルートのリストを指定しました。次に、 は、認証や登録やパスワードの復元に失敗したときに 'respond_with({}、:location => after_sign_up_fails_path_for(resource))'を使うように変更しました。メソッド 'after_sign_up_fails_path_for(resource)'を作成する必要があることに注意してください。その中にあなたが行きたい場所を置くだけです(for_example 'home_path')。それは私のために働いた。 – RomanKapitonov

答えて

2

登録コントローラを上書きし、newアクションをどこかにリダイレクトすることができます。 Here are some responses to a similar question that was posted on StackOverflowは、必要な手順を説明しています。

+1

#Batkins、 'clean_up_passwords resource; respond_with resource' このコードは、登録中にエラーが発生した場合(ユーザーが存在する場合、空のメールなど)に実行されます。このコードの後に​​ 'redirect_to some_path'を書くと、二重レンダリング例外が発生します。 'respond_with resource'の代わりに' redirect_to some_path'を書くと、リダイレクトされますが、 'devise_error_messages'は空ですので、リダイレクトされたビューでそれらを使うことはできません。エラーメッセージを私がリダイレクトされたビューで利用できるようにする方法はありますか? – RomanKapitonov

+0

前のコメントを受け取っていないかどうかわからない – RomanKapitonov

+0

'redirect_to some_path and return'を使う必要があります。これにより、リダイレクトコードが発生した後にそのメソッド内でコードの実行を停止し、後で発生する可能性のある他のレンダリング/リダイレクトステートメントを防ぐことができます。 [RoRの公式サイトでこのドキュメントを読む](http://guides.rubyonrails.org/layouts_and_rendering.html#avoiding-double-render-errors)より詳しい説明は、こちらをご覧ください。 – Batkins

関連する問題