私は次のデバイスモデルを持っています(簡潔にするために編集されています)
class Student < ActiveRecord::Base
devise :database_authenticatable, :token_authenticatable,
:recoverable, :rememberable, :trackable,
:authentication_keys => [:login], :reset_password_keys => [ :login ]
attr_accessor :login
attr_accessible :name, :email, :password, :password_confirmation, :login
validates :name, :presence => true
validates :email, :presence => true
validates_uniqueness_of :email, :case_sensitive => false, :allow_blank => true, :if => :email_changed?, :scope => :id
validates_format_of :email, :with => Devise.email_regexp, :allow_blank => true, :if => :email_changed?
validates_presence_of :password, :on=>:create
validates_confirmation_of :password, :on=>:create
validates_length_of :password, :within => Devise.password_length, :allow_blank => true
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:login)
where(conditions).where(["name = :value OR lower(email) = :value", { :value => login.downcase }]).first
else
where(conditions).first
end
end
def email_required?
false
end
def email_changed?
false
end
end
そして、このリンクのガイドに従って、名前または電子メールでのサインインを有効にしました。
問題は次のとおりです。
名前が 2 語を超える生徒はサインインできません。たとえば、「Adam Bravo Charlie」などです。
「Adam」などの単一の名前、または「Adam Bravo」などの 2 語以下の名前でサインインできます。
学校では、学生がフルネームとそれに付随するスペースを使用してログインする必要があります。生徒が氏名と空白文字でサインインできるようにするにはどうすればよいですか?