【问题标题】:Devise... additional columns to User model not validating设计...用户模型的附加列未验证
【发布时间】:2011-04-27 14:49:53
【问题描述】:

我在 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

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

谢谢。

【问题讨论】:

  • 你能看看你的 user.rb 是否定义了 attr_accessible 吗?

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


【解决方案1】:

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

【讨论】:

  • 感谢@IreneuszSkrobis。一切尽在细节之中!呃。
猜你喜欢
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多