似乎我添加的自定义输入字段未列入白名单(在提交时显示空白验证错误)。
这是控制器:
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" %>
答案 0 :(得分:0)
试试这个:
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:name) }
答案 1 :(得分: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