Тестирование Rspec-модели 'validate_presence_of' выдает Module :: DelegationError - PullRequest
0 голосов
/ 04 декабря 2018

Это мои спецификации

describe 'Do sth..' do
  it { should validate_presence_of :some_attribute }    
end

В моей модели у меня есть, но я получаю

class Order < ApplicationRecord
  has_one :sub_order, inverse_of: :order, dependent: :destroy

  validates_presence_of :some_attribute

  delegate(
    :some_attributes1,
    to: :sub_order
  )
end

Module :: DelegationError: Order # some_attributes1, делегированный sub_order.some_attributes1, но sub_order ноль: #

Может ли кто-нибудь помочь мне, пожалуйста?Заранее спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

Так же, как ошибка говорит: sub_order - это nil, поэтому вызов метода не может быть делегирован там.У вас есть два варианта:

  1. Убедитесь, что sub_order не ноль (например, путем переопределения геттера)
  2. Используйте .delegate с :allow_nil, опция

:allow_nil - при значении true предотвращает повышение Module::DelegationError

https://api.rubyonrails.org/classes/Module.html#method-i-delegate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...