0

我添加的自定义输入字段似乎没有被列入白名单(提交时显示空白验证错误)。

这是控制器:

class AccountsController < ApplicationController

  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :name
  end
end

它基本上是 Devise 文档的复制过去,但它根本不起作用(即,没有将我的自定义输入字段列入白名单)。

更新:
这是表格:

<h2>Sign up</h2>

<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">

    <%= f.input :name %>
    <%= f.input :email %>
    <%= f.input :password %>
    <%= f.input :password_confirmation %>
  </div>

  <div class="form-actions">
    <%= f.button :submit, "Sign up" %>
  </div>
<% end %>

<%= render "accounts/shared/links" %>
4

2 回答 2

0

试试这个,我希望它能帮助你并解决你的问题。

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.

  before_filter :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
   devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:firstname, :lastname, :email, :password, :password_confirmation) } #here you can permit custom fields. 
  end

  protect_from_forgery with: :exception
end
于 2013-10-24T14:09:25.693 回答
0

尝试这个:

devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:name) }
于 2013-10-24T13:44:05.697 回答