2015-04-03 51 views
1

我使用最新版本的Devise運行Rails 4.2.0。添加用戶的名字來設計確認電子郵件模板

我使用可確認的模塊 - 所以在用戶註冊後,他們會發送確認電子郵件。

下面是該視圖代碼(在超薄...不是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

你確定first_name存儲在db中正確嗎? – Mandeep 2015-04-03 05:14:29

+0

first_name實際上並未保存在數據庫中(或者至少未正確保存)。 – 2015-04-03 16:12:02

回答

1

難道通過制定一些寶石挖,發現我需要爲忽略以下控制器動作(應用程序/控制器/用戶/ 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' } 
0

設計使用資源來抽象它正在管理的東西。

假設您的@resource被正確設定,你應該能夠做到

@resource.first_name 
+0

這不起作用。我需要在確認控制器中更改某些內容嗎? – 2015-04-03 03:35:04

+0

您的資源確認網址是否顯示? – Austio 2015-04-03 12:35:46

+0

是的 - 資源URL顯示(並正常工作) – 2015-04-03 16:10:23

0

current_user.first_name在過去爲我工作。有什麼好處?