2017-06-16 61 views
1

所以我想添加一些新的領域給我的設計模型用戶。當我使用Rails 3我只是增加了新的領域模型,並添加這些字段Model.rb向Devise模型添加新的字段。 Rails 5

attr_accessible :name, :etc 

,然後我改變了註冊視圖。 現在我已經做了同樣的,但我還沒有想出/用戶控制器,所以我不能做這樣的事情

def user_params 
     params.require(:users).permit(:name) 
end 

或者

attr_accessible :name, :etc 

回答

3

定製RegistrationsController

class RegistrationsController < Devise::RegistrationsController 

    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 
end 

現在我們需要告訴Devise使用我們的註冊控制器 - 我們可以在我們的config/routes.rb文件中執行此操作。

devise_for :users, :controllers => { registrations: 'registrations' } 
+0

這是一個很好的答案。從我這似乎是OP的帖子的閱讀還沒有做遷移。不知道雖然... –

+0

命令來運行遷移:'rake db:migrate' – puneet18

+0

我剛剛使用Devise並想修改我們的呃桌子。我剛剛成功實施了此解決方案。 –

0

有三個環節進行:

  1. 生成遷移到表的字段添加到您的數據庫架構。

rails generate migration add_name_to_users name:string

  • 您需要添加到註冊/編輯表單添加/編輯名稱爲用戶的能力。 (這好像您已經在第一個代碼示例中完成)

  • 您需要添加您添加到您的控制器(您已經在自己的第二個代碼示例中已經完成的強烈PARAMS。

  • 基本上好像你還沒有產生遷移。您是否收到任何錯誤消息?

    相關問題