ActiveModel :: MassAssignmentSecurity ::错误:/无法批量分配受保护的属性:user

时间:2013-03-26 14:51:38

标签: ruby-on-rails

我正在研究Michael Hartl的Ruby on Rails教程,并且正在为用户建模。 User_spec.rb测试失败了,我读错误是由于某种原因,属性没有被读取为可访问,尽管代码说它们应该是。我做了rake db:test:准备好了。任何帮助将非常感激。

用户模型很简单。

app / models / user.rb

class User < ActiveRecord::Base
  attr_accessible :name, :email

end

在spec / models / user_spec.rb上测试是这样的:

require 'spec_helper'

describe User do

    before { @user = User.new(user: "Example User", email: "user@example.com") }

    subject { @user }

    it { should respond_to(:name) }
    it { should respond_to(:email) }

end

2 个答案:

答案 0 :(得分:3)

应该是name而不是user ...请检查以下内容

require 'spec_helper'

describe User do

  before { @user = User.new(name: "Example User", email: "user@example.com") }

  subject { @user }

  it { should respond_to(:name) }
  it { should respond_to(:email) }
end

在为Example User user创建新记录时,您犯了错误。它应该是name

答案 1 :(得分:2)

您希望通过批量分配更新的内容需要在attr_accessible

更改此

class User < ActiveRecord::Base
  attr_accessible :name, :email

end

到此:

class User < ActiveRecord::Base
  attr_accessible :name, :email, :user

end

虽然user似乎不是正确的属性名称。可能应该是username吗?