Ruby on rails Rails教程质量分配安全异常

Ruby on rails Rails教程质量分配安全异常,ruby-on-rails,rspec,mass-assignment,Ruby On Rails,Rspec,Mass Assignment,我一直在学习RubyonRails教程。我遇到了一个问题,无法通过要抛出的大规模分配安全异常的检查。我不知道为什么会出现这个测试失败,或者如何修复它 rspec: describe "accessible attributes" do it "should not allow access to user_id" do expect do Micropost.new(user_id: user.id) end.should raise_error(

我一直在学习RubyonRails教程。我遇到了一个问题,无法通过要抛出的大规模分配安全异常的检查。我不知道为什么会出现这个测试失败,或者如何修复它

rspec:

describe "accessible attributes" do
    it "should not allow access to user_id" do
      expect do
        Micropost.new(user_id: user.id)
      end.should raise_error(ActiveModel::MassAssignmentSecurity::Error)
    end    
  end
  1) Micropost accessible attributes should not allow access to user_id
     Failure/Error: expect { Micropost.new(user_id: user.id) }.should raise_error(ActiveModel::MassAssignmentSecurity::Error)
       expected ActiveModel::MassAssignmentSecurity::Error, got #<NoMethodError: undefined method `call' for #<RSpec::Expectations::ExpectationTarget:0x8af2bb8>>
     # ./spec/models/micropost_spec.rb:23:in `block (3 levels) in <top (required)>
失败:

describe "accessible attributes" do
    it "should not allow access to user_id" do
      expect do
        Micropost.new(user_id: user.id)
      end.should raise_error(ActiveModel::MassAssignmentSecurity::Error)
    end    
  end
  1) Micropost accessible attributes should not allow access to user_id
     Failure/Error: expect { Micropost.new(user_id: user.id) }.should raise_error(ActiveModel::MassAssignmentSecurity::Error)
       expected ActiveModel::MassAssignmentSecurity::Error, got #<NoMethodError: undefined method `call' for #<RSpec::Expectations::ExpectationTarget:0x8af2bb8>>
     # ./spec/models/micropost_spec.rb:23:in `block (3 levels) in <top (required)>
1)Micropost可访问属性不应允许访问用户id
失败/错误:预期为{microspost.new(用户\u id:user.id)}。应引发\u错误(ActiveModel::MassAssignmentSecurity::Error)

预期的ActiveModel::MassAssignmentSecurity::Error,Get#尝试使用
to
而不是
should
作为预期的raise\u错误匹配程序

describe "accessible attributes" do
  it "should not allow access to user_id" do
    expect do
      Micropost.new(user_id: user.id)
    end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
  end    
end

尝试使用
to
而不是
should
来匹配预期的raise\U错误匹配器

describe "accessible attributes" do
  it "should not allow access to user_id" do
    expect do
      Micropost.new(user_id: user.id)
    end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
  end    
end

它起作用了!我最好向Rails教程的制作者提交一份错误报告!我最好向Rails教程的制作者提交一份错误报告