0

Railsアプリで認証にDeviseを使用しています。ユーザーとしてサインアップしようとすると、次のエラーが表示されます。保護された属性(電子メール、パスワード、password_confirmation)を一括割り当てできません。'owner'という名前のUsersテーブルに新しい列を追加するまで、このエラーは発生しませんでした。

User.rb

class User < ActiveRecord::Base
    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable   
    attr_accessible :owner, :email, :password, :password_confirmation, :admin, :as => :admin    
end

ユーザーを追加するための移行:

class AddOwnerToUsers < ActiveRecord::Migration
  def change
    add_column :users, :owner, :boolean, :default => false
  end
end

:ownerを追加する前は、この問題が発生したことを覚えていません。これを修正する方法について何かアドバイスはありますか?

4

1 に答える 1

0

:asの使用法についてはよくわかりませんattr_accessible。私はそれを使ったことがありません。これまでのところ、次のような一括属性を更新するときにこれを指定する必要があります。

User.new(params[:user], :as => :admin)

また、

@user = User.find(1)
@user.update_attributes(params[:user], :as => :admin)
于 2013-03-27T13:39:34.497 に答える