我在我的Rails应用程序中使用Devise进行身份验证。当我尝试以用户身份注册时,我收到一条错误消息:无法批量分配受保护的属性:email,password,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
在我添加之前:所有者,我不记得有这个问题。关于如何解决这个问题的任何建议?
答案 0 :(得分:0)
我不确定:as
中attr_accessible
的使用情况。我从来没用过那个。到目前为止,我已经明白了,你必须在更新质量属性时指定它,如:
User.new(params[:user], :as => :admin)
或,
@user = User.find(1)
@user.update_attributes(params[:user], :as => :admin)