我下面這個設計如何,對How To: Allow users to sign in using their username or email address並沒有詳細說明所有的臺階上,但是當我嘗試通過registrations/new.html.erb
形式註冊我得到這個錯誤:「電子郵件不能爲空」使用用戶名或電子郵件
Email can't be blank
在我的模型,我有:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :username, :email, :password, :password_confirmation, :remember_me
attr_accessor :login
attr_accessible :login
和
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:login)
where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).first
else
where(conditions).first
end
end
任何意見有這個問題?
======= UPDATE
我發現這裏的東西在這裏■[rails]How to use Devise and Rails , without EMail它是這樣的:
# Email is not required
def email_required?
false
end
用在我的模型加入我能創造一個記錄用戶名和離開電子郵件領域的空白,但是當我嘗試沒有電子郵件創建第二個記錄的數據庫上升了一個錯誤:
Mysql2::Error: Duplicate entry '' for key 'index_parents_on_email':...
我應該利用這一點,從刪除索引我表在數據庫中,並且只驗證模型中的username
?因爲我真的不需要該模型的電子郵件字段。
Mr_Nizzle,你能接受更性感的方式嗎? – asiniy 2015-04-18 11:57:43