我使用最新版本的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
数据库中有第一个名称列(已运行迁移);但是,这不起作用。用户名字所在的位置为空白。
如何配置视图以包含用户名?
答案 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过去对我有用。好不好?