使用其他字段而不是使用电子邮件字段设计身份验证

时间:2012-12-20 08:56:12

标签: authentication devise

我尝试在devise.rb中设置config.authentication_keys = [:actor_id], 这是我的表格:

<%= 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 :serial_number %><br />
  <%= f.text_field :serial_number %></div>
  <div><%= f.label :email %><br />
  <%= f.text_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>

  <div><%= f.submit "Sign up" %></div>
<% end %>

我在自定义表中保存了name,serial_number和email值,而不是设备生成表我也删除了默认的电子邮件字段。但它仍然抛出以下错误:

Can't mass-assign protected attributes: email

我尝试将电子邮件重命名为电子邮件,但它会抛出以下错误:

undefined method `downcase!' for 1:Fixnum

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要将其添加到您的用户模型中:

attr_accessible :email

检查此Railscast并了解:)

http://railscasts.com/episodes/26-hackers-love-mass-assignment