向Devise模型添加新字段.Rails 5

Yur*_*i10 3 ruby-on-rails devise

所以我想为我的Devise模型用户添加一些新字段.当我使用Rails 3时,我只是添加了新的字段来建模并将这些字段添加到Model.rb中

attr_accessible :name, :etc  
Run Code Online (Sandbox Code Playgroud)

然后我更改了注册视图.现在我已经做了同样的事情,但我没有设计/用户控制器所以我不能做这样的事情

 def user_params
      params.require(:users).permit(:name)
 end 
Run Code Online (Sandbox Code Playgroud)

要么

attr_accessible :name, :etc 
Run Code Online (Sandbox Code Playgroud)

pun*_*t18 13

自定义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
Run Code Online (Sandbox Code Playgroud)

现在我们需要告诉Devise使用我们的注册控制器 - 我们可以在config/routes.rb文件中执行此操作.

devise_for :users, :controllers => { registrations: 'registrations' }
Run Code Online (Sandbox Code Playgroud)


Bil*_*son 0

这分为三个部分:

  1. 生成表的迁移以将字段添加到数据库架构中。

rails generate migration add_name_to_users name:string

  1. 您需要添加在用户的注册/编辑表单中添加/编辑名称的功能。(看起来您已经在第一个代码示例中完成了)

  2. 您需要添加添加到控制器的强参数(您已经在第二个代码示例中完成了这一操作)。

基本上看来您还没有生成迁移。您收到任何错误消息吗?