私はMichaelHartlのRailsチュートリアルに取り組んでいます。第9章、演習1に来ました。クラスのadmin
属性にアクセスできないことを確認するためのテストを追加するように求められます。User
無関係な部分がコメントアウトされたUserクラスは次のとおりです。
class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation
attr_protected :admin
# before_save methods
# validations
# private methods
end
admin
これが、属性にアクセスできないことを検証するために使用しているテストです。
describe User do
before do
@user = User.new(
name: "Example User",
email: "user@example.com",
password: "foobar123",
password_confirmation: "foobar123")
end
subject { @user }
describe "accessible attributes" do
it "should not allow access to admin" do
expect do
@user.admin = true
end.should raise_error(ActiveModel::MassAssignmentSecurity::Error)
end
end
end
テストは失敗します。admin
属性が保護されているにもかかわらず、エラーは発生しなかったと表示されます。どうすればテストに合格できますか?