2011-04-27 22 views
3

我在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字段之外添加的兩個字段。設計是否阻止向用戶模型添加其他字段?還有什麼其他原因?

謝謝。

+0

你可以看到你的user.rb是否定義了attr_accessible? – 2011-04-27 15:02:09

回答

4

可能您的用戶模型已定義attr_accessible。如果這是真的,那麼你必須添加:first_name和:last_name到列表中。

+0

謝謝@IreneuszSkrobis。這一切都在細節!啊。 – Jay 2011-04-27 15:09:57

+0

很高興聽到:) – 2011-04-27 15:12:14