簡體   English   中英

設計:將“電子郵件”替換為登錄名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM