Rails 3アプリでDeviseを使用していますが、この場合、ユーザーは既存のユーザーによって作成される必要があります。既存のユーザーは、自分が持つ権限を決定します。
このため、私は欲しい:
- ユーザーがサインアップするためのルートを削除するには。
- するために、自分のプロファイルを編集するユーザーをまだ許可(変更のメールアドレスとパスワード)の後、彼らはサインアップしています
これどうやってするの?
現在、私は前に次のものを配置することでこのルートを効果的に削除していますdevise_for :users
:
match 'users/sign_up' => redirect('/404.html')
それはうまくいきますが、もっと良い方法があると思いますよね?
更新
ブノワ・ギャレットが言ったように、私の場合の最善の解決策は、登録ルートをまとめて作成するのをスキップして、実際に必要なものだけを作成することです。
そのために、最初にを実行しrake routes
、次に出力を使用して必要なものを再作成しました。最終結果はこれでした:
devise_for :users, :skip => [:registrations]
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
ご了承ください:
- 私はまだ
:registerable
私のUser
モデルにいます devise/registrations
電子メールとパスワードの更新を処理します- 他のユーザー属性(権限など)の更新は、別のコントローラーによって処理されます
実際の答え:
デフォルトのDeviseパスのルートを削除します。つまり:
devise_for :users, path_names: {
sign_up: ''
}
https://example.com/users/
。以下の私の答えを参照してください。