我在默认的Devise生成的用户模型中添加了一个username:string属性(以及设计新/编辑注册中的表单字段),并且它没有成功地使用户的用户名不是nil,而是提交编辑或新表格时没有错误。
<div><%= f.label :username %><br />
<%= f.text_field :username, autofocus: true %></div>
我创建了另一个用户控制器,并为其提供了强大的参数,其中username属性可访问,我还做了:用户名可通过注册控制器访问,扩展了Devise :: RegistrationsController
编辑Devise生成的用户模型的立场/接受方式是什么?
答案 0 :(得分:0)
您必须在操作之前将此清理方法添加到应用程序控制器:
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
[:sign_up, :account_update].each do |action|
devise_parameter_sanitizer.for(action).push(:user_name)
end
end
答案 1 :(得分:0)
根据devise documentation,这对您有用:
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up, :update) << :username
end
end
注意:这应该在应用程序控制器中完成。
希望它有所帮助,。