0

我在我的 Rails 应用程序中使用 Devise 进行身份验证。当我尝试以用户身份注册时,我收到一条错误消息:无法批量分配受保护的属性:电子邮件、密码、密码确认。直到我在名为“所有者”的用户表中添加了一个新列之后,我才收到此错误。

用户.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

在我添加之前:所有者,我不记得有这个问题。关于如何解决这个问题的任何建议?

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 回答