私はDeviseユーザーと管理者のために別々のモデルを用意しています。私はBasecampスタイルのサブドメインも使用しています。ユーザーや管理者として認証できる必要があるいくつかのコントローラとアクションを除いて、すべてがうまく機能しています。ユーザーまたは管理者モデルとベースキャンプスタイルのサブドメインでログインする
現在、私はauthenticate_userを持っています!私のapplication_controller.rbに設定されています。私はskip_before_filterを使用してコントローラと管理者だけがアクセス権を持っている必要があるアクションをスキップしています。
残念ながら、ユーザーまたは管理者の両方がアクセスできるコントローラとアクションが必要なので、各コントローラで認証要件を指定するだけでは不十分です。
私は役に立たないものをいくつか試しました。それは私がauthenticate_userを移動すると思われる!およびauthenticate_admin!何らかのサブドメイン検出ロジックに処理できません。基本的には:
current_subdomain = request.subdomains.first
if current_subdomain == 'admin'
authenticate_admin!
else
authenticate_user!
end
と私のための最初の(リダイレクトループをもたらした私は、ある時点で、それが認証を試みるように取得することができたが、何らかの理由でそれが認証を必要とするから、セッション制御部を除く外に失敗しましたRuby!)。
ユーザーに管理ステータスを示すフィールドを追加できることがわかりましたが、少数のコントローラとアクションを除いて、アプリケーションではユーザーと管理者の間に大きな権限が必要です。
- ルビー1.9.2
- のRails 3.0.3
- 工夫たぶん1.1.3
私もそうしています。 – Shane