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

时间:2015-04-03 03:07:19

标签: ruby-on-rails postgresql devise devise-confirmable

我使用最新版本的Devise运行Rails 4.2.0。

我正在使用可确认模块 - 因此在用户注册后会向他们发送确认电子邮件。

这里是该视图的代码(在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

数据库中有第一个名称列(已运行迁移);但是,这不起作用。用户名字所在的位置为空白。

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

3 个答案:

答案 0 :(得分:1)

Devise使用资源来抽象它正在管理的东西。

假设您的@resource设置正确,您应该可以

@resource.first_name

答案 1 :(得分:1)

有人挖掘了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' }

答案 2 :(得分:0)

current_user.first_name过去对我有用。好不好?