Rails上的设计自定义字段5

时间:2017-09-12 10:57:50

标签: ruby-on-rails devise ruby-on-rails-5

我已经安装了devise gem并将自定义字段添加到数据库fullnamelocation作为字符串。

我将editnew表单页面更新为:

<%= f.input :fullname, required: true %>
<%= f.input :location %>

但它不会保存或更新此字段。

我无法看到任何控制器 enter image description here

我错过了什么?我经历了数十个教程,但无法弄清楚。

我使用的是Rails 5.1.3和Ruby 2.4.0p0。

1 个答案:

答案 0 :(得分:1)

您可以使用过滤前的configure_permitted_parameters以“懒惰方式”执行此操作。

在ApplicationController中添加protected方法,指定devise_parameter_sanitizer中允许的密钥。如果正在使用的控制器是设备注册控制器,则添加指向此方法的before_action回调。

在你的情况下可能是这样的:

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    permit_attrs(%i[fullname location])
  end

  def permit_attrs(attrs)
    %i[sign_up account_update].each do |action|
      devise_parameter_sanitizer.permit(action, keys: attrs)
    end
  end
end