如何修复从rails中设计的大规模分配安全错误



我在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之前,我不记得有这个问题。关于如何解决这个问题有什么建议吗?

我不确定:asattr_accessible中的用法。我从来没用过。到目前为止,我所理解的是,当你更新质量属性时,你必须指定这个:

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

@user = User.find(1)
@user.update_attributes(params[:user], :as => :admin)

最新更新