Использование массового присваивания соответствия в Rspec с Rails 2.3.x - PullRequest
0 голосов
/ 03 ноября 2011

Должны ли совпадения для Rspec не поддерживать allow_mass_assignment_of для классов ActiveRecord.

В качестве обходного пути, не считаете ли вы следующий код эквивалентным?

it { should_not allow_mass_assignment_of :id }

it { MyClass.protected_attributes.include?("id").should be_true }

Ответы [ 2 ]

1 голос
/ 07 января 2012

Я тоже испытываю эту проблему.Следующий тест:

it should allow_mass_assignment_of(:email)

завершается неудачно с сообщением об ошибке

undefined method 'allow_mass_assignment_of' for #<Class:0x1044de9c8> (NoMethodError)

, в то время как следующий тест завершается успешно (таким образом, устанавливается, что Должа присутствует):

it should validate_uniqueness_of(:email)

shoulda-matchers версия 1.0.0, rspec (и все связанные гемы) версия 2.8.0

Не похоже, но может ли это быть как-то связано с этой проблемой: https://github.com/mergulhao/shoulda-matchers/commit/3a75c6877c07fbf62e77b1fb0aa852138bd537d6

1 голос
/ 05 ноября 2011

Согласно исходному коду оба они эквивалентны, но первая строка должна работать правильно. Вы можете проверить это на https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/active_model/allow_mass_assignment_of_matcher.rb

...