Отношение, переданное в #or, должно быть структурно совместимым с Rails 5.1 до 5.2. - PullRequest
0 голосов
/ 07 февраля 2020

мое приложение не работает после обновления Rails с 5.1 до 5.2

Ошибка: Relation passed to #or must be structurally compatible, Incompatible values: [:create_with]):, и я не могу понять, что не так.

Проблема связана с этой областью

  scope :publication, -> do
    where.not(type: 'Content::Teaser').
      where.not(home_position: nil).
      or(
        Content::Teaser.where(
          id: Content::Teaser.select(:id).joins(:content).where(content: Content.publication)
        )
      )
  end

Почему эта ошибка?

1 Ответ

0 голосов
/ 08 февраля 2020
# scope should only really be used for one-liners as its just syntactic sugar 
# and hurts the readability of your code
def self.publication
  where.not(type: 'Content::Teaser').
    where.not(home_position: nil).or(
      # provided that Content.publication is a scope
      Content::Teaser.joins(:content).where(Content.publication) 
    )
  )
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...