1

admin_users があり、通常のユーザーがいて、両方とも別々のテーブル、モデル、およびデバイス ログインを持っています。

1 つのユーザー テーブルに対してのみ devise を使用し、ロールに対して cancan を使用する方が理にかなっているかもしれませんが、アプリケーションは既に 2 つの個別のユーザー テーブルで作成されており、この時点でそれらを変更するオプションはありません。

ログインを含む管理者ユーザーの機能は正常に動作しています。当初、標準ユーザー アクセスはリンクとトークン ベースの認証のみでしたが、これを変更する必要があります。

私たちが持っていたルートで

devise_for :admin_users, ActiveAdmin::Devise.config  
devise_for :users
resources :users, :only => [:update, :edit]

そのため、ログインが成功した場所として、Devise のドキュメントで示されているユーザー リソースのルート パスを追加しました。

devise_for :admin_users, ActiveAdmin::Devise.config  
devise_for :users
resources :users, :only => [:update, :edit] do
  root to: "practitioner_activities#welcome"
end  

そして、私もonly =>例を削除しようとしました

devise_for :admin_users, ActiveAdmin::Devise.config  
devise_for :users
resources :users do
  root to: "practitioner_activities#welcome"
end  

私が変更した(通常の)ユーザーモデルの場合:

devise :token_authenticatable,

また持っている:

devise :token_authenticatable, # token login still permitted.  
       :database_authenticatable, :recoverable, :rememberable, 
       :trackable, :validatable
       # Not sure if these will make a difference but they are like this in other apps.

ただし、practicator_activities#welcome にリダイレクトする代わりに、ユーザーはログイン画面に戻されます。

ログイン POST についてログに記録されたコンソールの最初の行は、User モデルではなく、AdminUser モデルを使用していることに気付きました。修正方法はありますか?

Started POST "/" for 127.0.0.1 at 2012-08-23 13:54:50 -0400
Processing by HelpController#show as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"28iGxAB+URoIKoBQtPizGAosJoZ/V7Vko1w/bYMvesE=", "new_user_session_path"=>{"email"=>"Borger.Cathy@meridianschools.o
rg", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign In"}
  AdminUser Load (0.4ms)  SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 LIMIT 1

ログインフォーム自体は次のとおりです。

= semantic_form_for(:new_user_session_path, 
  :html => {:id => "session_new"}) do|f| 

      = f.inputs do
        = f.input :email, :label => "Username"
        = f.input :password
        = f.input :remember_me, :as => :boolean, :if =>  false  
        = f.commit_button "Sign In"
4

1 に答える 1

0

最終的には、devise ジェネレーターだけを再び編集してから、devise ビューを編集することが主な目的でした。

于 2012-08-29T00:37:11.250 に答える