添加用户的名字以设计确认电子邮件模板

Adding User's First Name to Devise Confirmation Email Template

我正在 运行宁 Rails 4.2.0 与最新版本的 Devise。

我正在使用可确认模块 - 因此在用户注册后,他们会收到一封确认电子邮件。

这是它的视图代码(在 Slim 中...不是 ERB)

p 
  | Hi
  = @user.first_name
  | ,

p In order for me to send you the details, I'm going to need you to confirm your email address by clicking the link below: 
= link_to "#{confirmation_url(@resource, confirmation_token: @token)}", confirmation_url(@resource, confirmation_token: @token)

这是用户控制器代码:

class Users::RegistrationsController < Devise::RegistrationsController

  private
  def user_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
  end

end

数据库中有名字列(已迁移运行);但是,这不起作用。用户名字应该是空白的地方。

如何配置视图以包含用户的名字?

Devise 使用资源来抽象它所管理的事物。

假设您的@resource 设置正确,您应该能够做到

@resource.first_name

current_user.first_name 过去曾为我工作过。有什么好处吗?

通过 Devise Gem 进行了一些挖掘,发现我需要覆盖以下控制器操作 (app/controllers/users/registrations_controller.rb):

 private

 def sign_up_params
   params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
 end

 def account_update_params
   params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
 end

...并确保我的应用程序在 routes.rb

中使用我的新注册控制器
devise_for :users, :controllers => { registrations: 'user/registrations' }