Rspec: NoMethodError

Я пишу тестовые случаи (модульное тестирование) для моделей, и получаю ошибку, которую я действительно не знаю, почему...

вот моя ошибка:

Failure/Error: expect(Shelf.enabled.count).to eq 2
     NoMethodError:
       undefined method `enabled' for #<Class:0x00000005a2c088>

и вот мой код в спецификации модели. модели /shelf_spec.rb

describe 'shelves' do
    before do
      Fabricate(:shelf, heading_products: 'Top Selling Products', heading_vendors: 'Top Selling Brands', enabled: true, product_ids: '1, 2', vendor_ids: '1, 3')
      Fabricate(:shelf, enabled: true, expires_on: Date.today)
      Fabricate(:shelf, enabled: false, expires_on: 1.day.ago)
    end
describe 'Shelf#enabled' do
      it 'should return enabled shelves' do
        expect(Shelf.enabled.count).to eq 2
      end

      it 'shelves returned should be enabled' do
        expect(Shelf.enabled.first.enabled?).to be_true
      end
    end
end

включен атрибут логического типа полки.

пожалуйста, поправьте меня, что я пропустил или с чем не так.

Спасибо

1 ответ

Вам нужно создать область на Shelf класс для фактического поиска разрешенных записей.

class Shelf
  scope :enabled, -> { where(enabled: true) }

  ...
end
Другие вопросы по тегам