Ruby on rails 设计:替换';电子邮件';具有用于登录的备选方案

Ruby on rails 设计:替换';电子邮件';具有用于登录的备选方案,ruby-on-rails,devise,Ruby On Rails,Devise,我尝试在整个应用程序中使用Sublime的“在所有文件中替换”功能将电子邮件替换为accountnumber 我已经重置并重新迁移了数据库,但是,注册时仍然出现以下错误: undefined method `email' for #<Account:0x415b690> 以前有人遇到过这种困难吗?对于Desive,惯例是使用“电子邮件”进行登录。您使用的是gem(designe),因此并非所有代码都在项目中可见,搜索并替换以“accountnumber”代替“email”是不够的。

我尝试在整个应用程序中使用Sublime的“在所有文件中替换”功能将
电子邮件
替换为
accountnumber

我已经重置并重新迁移了数据库,但是,注册时仍然出现以下错误:

undefined method `email' for #<Account:0x415b690>

以前有人遇到过这种困难吗?

对于Desive,惯例是使用“电子邮件”进行登录。您使用的是gem(designe),因此并非所有代码都在项目中可见,搜索并替换以“accountnumber”代替“email”是不够的。您必须通过更改帐户模型来重新配置Desive

确保在创建的迁移设备(“DevisionCreateUsers”)中将“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
class用户[:accountnumber]
是否需要def电子邮件?
假的
结束
def电子邮件更改了吗?
假的
结束
结束
确保已生成设计视图,并将视图文件中的“电子邮件”更改为“帐号”


我已经写了一篇文章,帮助您了解Desive的工作原理。

这是一个现有的应用程序还是一个新的应用程序?如果是后者,则不需要搜索和替换。这应该在你的设计配置中完成。这是我前几天从头创建的一个应用程序,知道在哪里可以更改吗?
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