私は複数のモデル (正確には 3 つ) で Devise を使用しており、各ロールにはいくつかの異なる相互作用があります。たとえば、ユーザー モデルがサインアップした後、devise メソッドをオーバーライドして特定のウェルカム パスにリダイレクトし、雇用主モデルではクレジット カード フォームなどに誘導します。
その結果、すべてに名前空間を付ける必要があります。ビューとコントローラーの名前空間は難しくありませんが、すべてのデバイスコントローラーを指定せずにコントローラーの名前空間を設定する方法があるかどうか疑問に思っていました。
たとえば、基本的にこれを行う方法はありますか:
devise_for :employers, :controller => "employers"
これを行う代わりに:
devise_for :employers, :controllers => {
:registrations => "employers/registrations",
:sessions => "employers/sessions",
:confirmations => "employers/confirmations",
:passwords => "employers/passwords",
:unlocks => "employers/unlocks",
:mailer => "employers/mailer"
}
些細なことのように思えるかもしれませんが、維持するモデルが 3 つある場合は、多少の負担がかかる可能性があります。