3

最初にdeviseをインストールして変更し、メールの代わりにユーザー名でログインできるようにしました。その後、Activeadmin gem を gem ファイルに入力しました。

その後、bundle install と rake active_admin:install を実行しました。しかし、バックエンド /admin/login にログインしようとすると、次のエラー メッセージが表示されます。

undefined method `username' for #<AdminUser:0x00000004bb2e58>

このコードで:

抽出されたソース (7 行目あたり):

4:   <% scope = Devise::Mapping.find_scope!(resource_name) %>
5:   <%= active_admin_form_for(resource, :as => resource_name, :url => send(:"#{scope}_session_path"), :html => { :id => "session_new" }) do |f|
6:     f.inputs do
7:       resource.class.authentication_keys.each { |key| f.input key, :input_html => {:autofocus => true}}
8:       f.input :password
9:       f.input :remember_me, :label => t('active_admin.devise.login.remember_me'), :as => :boolean, :if =>  false  #devise_mapping.rememberable? }
10:     end

誰でもこれを解決する方法を考えていますか? さらに情報が必要な場合は、お尋ねください。

ロエロフ

編集:これを行うことでこれを解決できると思いました: http : //blog.blazingcloud.net/2012/07/29/activeadmin-with-existing-devise-authentication/ activeadminなしで成功しました

4

1 に答える 1

0

同じエラーが発生していたので、これを AdminUser モデルに追加して解決しました

  def login=(login)
    @login = login
  end

  def login
    @login || self.email
  end

  def self.find_for_database_authentication(warden_conditions)
    conditions = warden_conditions.dup
    login = conditions.delete(:login)
    where(conditions).where(["lower(email) = :value", { :value => login.strip.downcase }]).first
  end
于 2014-03-30T21:30:23.500 に答える