我已经安装了devise gem并将自定义字段添加到数据库fullname
和location
作为字符串。
我将edit
和new
表单页面更新为:
<%= f.input :fullname, required: true %>
<%= f.input :location %>
但它不会保存或更新此字段。
我错过了什么?我经历了数十个教程,但无法弄清楚。
我使用的是Rails 5.1.3和Ruby 2.4.0p0。
答案 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