2015-07-16 11 views
-1

У меня есть простая модель, которая выглядит следующим образом:неопределенного метод `allow_blank» - ShouldaMatchers

class User < ActiveRecord::Base 
    belongs_to :administration 
    validates :administration, presence: true, allow_blank: true 
end 

и спецификация, которая выглядит следующим образом:

require 'spec_helper' 

describe User, type: :model do 
    it { is_expected.to validate_presence_of(:administration).allow_blank } 
end 

выполнение этой спецификации возвращают меня:

NoMethodError: 
     undefined method `allow_blank' for #<Shoulda::Matchers::ActiveModel::ValidatePresenceOfMatcher:0x0000000b7f27a8> 

Почему?

+1

Возможный дубликат [rspec - как проверить, что разрешить \ _blank существует] (http://stackoverflow.com/questions/11413906/rspec-how-to-check-that-allow-blank-exists) – Makoto

+0

Я видел эта тема. Не нашел решения для моей проблемы. –

+0

Что конкретно он не ответил для вас? – Makoto

ответ

0

it { should allow_value("", nil).for(:administration) }

должен работать.

+0

вы скопировали его из старого ответа. С тех пор существует новый рекомендуемый синтаксис 'ожидать'. –

+0

Вы можете написать '' 'subject {user}' '' '' 'expect (subject) .to allow_value (" ", nil) .for (: administration)' ''. Но у меня есть некоторая путаница с этим синтаксисом '' subject ''. Поэтому я всегда избегаю этого. :) – Santanu

 Смежные вопросы

  • Нет связанных вопросов^_^