设计...用户模型未验证的其他列

时间:2011-04-27 14:49:53

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

我在Rails 3应用程序中使用Devise进行身份验证。我通过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 %>

用户模型中的验证:

  validates :first_name, :last_name, :email, :password, :password_confirmation, :presence => true

出于某种原因,我得到“名字不能为空”和“姓氏不能为空”验证错误。有趣的是,除了库存Devise字段之外,还添加了两个字段。 Devise是否阻止向User模型添加其他字段?还有什么其他原因?

感谢。

1 个答案:

答案 0 :(得分:4)

您的用户模型可能已经定义了attr_accessible。如果这是真的,那么你必须添加:first_name和:last_name到列表。