我在Rails 3应用程序中使用设计进行身份验证。我通过db:migrate将first_name和last_name列添加到数据库。注册表单修改如下:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :first_name %><br />
<%= f.text_field :first_name %></p>
<p><%= f.label :last_name %><br />
<%= f.text_field :last_name %></p>
<p><%= f.label :email %><br />
<%= f.text_field :email %></p>
<p><%= f.label :password %><br />
<%= f.password_field :password %></p>
<p><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></p>
<p><%= f.submit "Sign up" %></p>
<% end %>
User模型中的验证:
validates :first_name, :last_name, :email, :password, :password_confirmation, :presence => true
由于某种原因,我得到"名不能为空"one_answers"姓不能为空"验证错误。有趣的是,这是在stock design字段之外添加的两个字段。design是否阻止向User模型添加其他字段?还有其他原因吗?
谢谢。
可能您的用户模型已经定义了attr_accessible。如果为真,则必须在列表中添加:first_name和:last_name。