我尝试使用Sublime的“替换所有文件”功能在整个应用程序中用email
替换accountnumber
。
我已重置并重新迁移数据库,但是,在注册时我仍然会收到以下错误:
undefined method `email' for #<Account:0x415b690>
然后是以下参数
{"utf8"=>"✓",
"authenticity_token"=>"2qqA7dx99hx+VqkZGDmySNJd+2Fzxuanegy1ysrpD30=",
"account"=>{"accountnumber"=>"1307",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Sign up"}
之前有没有人遇到这种困难?
答案 0 :(得分:0)
使用Devise,惯例是使用&#39; email&#39;登录。您正在使用gem(设计),因此并非所有代码都在您的项目中可见,并且搜索和替换以替换&#39; accountnumber&#39;对于电子邮件&#39;是不足够的。您必须通过更改帐户模型来重新配置Devise。
务必更改电子邮件&#39;来自&#39; accountnumber&#39;在迁移Devise创建(&#39; DeviseCreateUsers&#39;)并运行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
确保您已生成设计视图并更改了电子邮件&#39;来自&#39; accountnumber&#39;在视图文件中。
我已经写了Rails Devise Tutorial,可以帮助您了解Devise的工作原理。