我正在尝试自定义我的设计用户电子邮件。
我做了以下事情:
的routes.rb
devise_for :users, :controllers => { :registrations => "registrations", :sessions => "sessions", :confirmations => "confirmations", :passwords => "passwords", :omniauth_callbacks => "authentications" }
端
devise.rb
config.mailer = "UserMailer"
类UserMailer<的ActionMailer ::基
include Devise::Mailers::Helpers # Needed for Devise
default from: "default@mydomain.com"
def confirmation_instructions(record)
@resource = record
mail( :from => "default@mydomain.com",
:to => record.email,
:subject => "XXXXXXXXX"
)
end
confirmation_instructions.html.erb
<p><%= link_to 'Confirm my account', user_confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
这会导致错误:
NameError in Registrations#create
Showing /Users/xxx/Sites/x/app/views/user_mailer/confirmation_instructions.html.erb where line #5 raised:
undefined local variable or method `controller' for #<UserMailer:0x007fac55fe3ba8>
知道这里有什么问题吗?
由于
答案 0 :(得分:-1)
如果您正在使用:reconfirmable模块,那么它需要unconfirmed_email列。因此,您必须在数据库中添加该列(通过创建用于添加列的新迁移)
但是,如果您不打算使用模块:可恢复。使用以下命令禁用它(在intializers / devise.rb中): -
config.reconfirmable = false
因为它默认启用。