[英]Devise: Replace 'email' with alternative for sign in
我試圖使用Sublime的“替換所有文件”功能在整個應用程序中用accountnumber
替換email
。
我已經重置並重新遷移了數據庫,但是,注冊時仍然出現以下錯誤:
undefined method `email' for #<Account:0x415b690>
然后是以下參數
{"utf8"=>"✓",
"authenticity_token"=>"2qqA7dx99hx+VqkZGDmySNJd+2Fzxuanegy1ysrpD30=",
"account"=>{"accountnumber"=>"1307",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Sign up"}
有人遇到過這個困難嗎?
在Devise中,慣例是使用“電子郵件”進行登錄。您使用的是gem(Devise),因此並非所有代碼都在您的項目中可見,並且使用搜索和替換方式將“ accountnumber”替換為“電子郵件”是不夠的。 您必須通過更改帳戶模型來重新配置Devise。
確保在創建的遷移Devise('DeviseCreateUsers')中將'email'更改為'accountnumber'並運行rake db:migrate:reset
。
更改您的帳戶模型:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:authentication_keys => [:accountnumber]
def email_required?
false
end
def email_changed?
false
end
end
確保已生成Devise視圖並將視圖文件中的“電子郵件”更改為“帳戶號”。
我編寫了一個Rails Devise教程 ,可以幫助您了解Devise的工作原理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.