こんにちは、hachi8833です。一昨日に続き、Devise How-Toシリーズを公開いたします。
Devise Wikiもくじリンク
- 「ワークフローのカスタマイズ」
- 「認証方法のカスタマイズ」「OmniAuth」
- 「ビュー/コンテンツのカスタマイズ」「特権/認証」
- 「テスト」「特殊な設定」
- 「アプリでのその他の設定」「JavaScript」
- 「他の認証プラグインからの移行」「アップグレード」
概要
- 原文: How To: Change Default Sign_up Registration Path with Custom Path
- リビジョン: 20 Aug 2016 · 5 revisions
原文の更新や誤りにお気づきの場合は、ぜひ@techrachoまでお知らせください。更新いたします。
[How-To] デフォルトのSign_up登録パスをカスタムパスに変更する(翻訳)
Deviseのsign_path
では、デフォルトで/users/sign_up
というパスを使います。何らかの理由でこのデフォルトパスをdomain.com/sign_up
に変更したい場合は、次のようにします(registration/sign_up
というカスタムコントローラを生成してないことが前提です)。
# routes.rbのトップレベル
Rails.application.routes.draw do
devise_scope :user do
get "/sign_in" => "devise/sessions#new" # login/sign_inへのカスタムパス
get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # sign_up/registrationへのカスタムパス
end
# その他のすべてのルーティング
devise_for :users
...
end
これにより、ビューで以下のように登録パスを指定できるようになります。
<%= link_to "Sign up", new_user_registration_path %>
その他に必要な変更はありません。サーバーを再起動すれば反映完了です。
好みに応じてsign_up
をregister
に変更することもできます。
関連記事(Devise)
- [Devise How-To] sign_inとsign_outのデフォルトルーティングを変更する(翻訳)
- [Devise How-To]ユーザーのパスワードを自動生成する(シンプルな登録方法)(翻訳)
- Rails4: 古いdeviseのパスワードを新しいdeviseで使う方法
- Rails 3.1.0.rc8にしようとしたらdeviseが違うバージョンのbcryptに依存していてアップデートできない
- [Rails 3] deviseで使うモデルにfind_by_で始まる名前のscopeを定義するとrake db:migrate:resetが通らない
- [Rails 3] 失敗しないmigrationを書こう
- [Rails 3] Appサーバが複数だとdevise_openid_authenticatableで認証できない