0

config.authentication_keys = [:actor_id] を devise.rb に設定しようとしました。これが私のフォームです。

<%= 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、および電子メールの値を、デバイスで生成されたテーブルではなく、カスタム テーブルに保存します。デフォルトの電子メール フィールドも削除します。しかし、それでも次のエラーが発生します。

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 に答える