0

我尝试在 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 %>

我将名称、序列号和电子邮件值保存在我的自定义表中,而不是设计生成的表中,我还删除了默认电子邮件字段。但它仍然抛出以下错误:

Can't mass-assign protected attributes: email

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

undefined method `downcase!' for 1:Fixnum

我究竟做错了什么?

4

1 回答 1

0

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

attr_accessible :email

检查这个 Railscast 并学习 :)

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

于 2012-12-20T15:24:07.193 回答