Devise生成的用户模型的不成功定制

时间:2014-10-26 17:21:14

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

我在默认的Devise生成的用户模型中添加了一个username:string属性(以及设计新/编辑注册中的表单字段),并且它没有成功地使用户的用户名不是nil,而是提交编辑或新表格时没有错误。

<div><%= f.label :username %><br />
<%= f.text_field :username, autofocus: true %></div>

我创建了另一个用户控制器,并为其提供了强大的参数,其中username属性可访问,我还做了:用户名可通过注册控制器访问,扩展了Devise :: RegistrationsController

编辑Devise生成的用户模型的立场/接受方式是什么?

2 个答案:

答案 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

注意:这应该在应用程序控制器中完成。

希望它有所帮助,。