好的,所以我已经按原样安装了设计,并且我有我的注册页面,但是当我在其中输入内容时,它告诉我它是空的并且不能为空白。我已经验证了存在和所有这些,所以我无法理解发生了什么。请看下面的表格,但我也注意到它闪烁的电子邮件/密码不能为空两次...
让我知道您可能还需要什么。
设计/registrations.html.erb
报名
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :name %><br />
<%= f.text_field :name %></div>
<div><%= f.label :profile_name %><br />
<%= f.text_field :profile_name%></div>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation%></div>
<br />
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "devise/shared/links" %>
更新:显示以下内容的日志
Parameters: {"utf8"=>"✓", "authenticity_token"=>"JGpbRxL9lPqYh34mcvXSVby7rl3NPwt/YyTrmgqcx9E=", "user"=>{"name"=>"", "profile_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
Unpermitted parameters: name, profile_name
就这样我明白这一点,为什么名称,profile_name 是不允许的,这与 attr_accessible 有关吗?
解决方案。即使安装了protected_attributes,您仍然需要将以下内容放入
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :profile_name, :email, :password, :password_confirmation) }
end
end