我在Rails应用程序中使用设计进行身份验证。当我尝试注册为用户时,我得到一个错误说:不能批量分配受保护的属性:电子邮件,密码,password_confirmation。我没有收到这个错误,直到我添加一个新的列到我的用户表名为'owner'。
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之前,我不记得有这个问题。关于如何解决这个问题有什么建议吗?
我不确定:as
在attr_accessible
中的用法。我从来没用过。到目前为止,我所理解的是,当你更新质量属性时,你必须指定这个:
User.new(params[:user], :as => :admin)
或
@user = User.find(1)
@user.update_attributes(params[:user], :as => :admin)