Rails: own_to игнорирует область - PullRequest
0 голосов
/ 09 апреля 2019

Структура таблицы:

Bar:
  a_id
  b_id
  attr1
  attr2
  ...

Foo:
  id
  a_id
  b_id
  ...

Модель:

class Bar < ApplicationRecord
end

class Foo < ApplicationRecord
  belongs_to :bar, lambda { |foo|
    unscope(:where).where(
      a_id: foo.a_id,
      b_id: foo.b_id
    )
  }

  def bar_working
    Bar.find_by(
      a_id: a_id,
      b_id: b_id
    )
  end
end

Колл Foo.find(1).bar дает ноль. Вызов Foo.find(1).bar_working возвращает связанный объект. Почему область не выполняется, когда я вызываю ассоциацию own_to?

Это прекрасно работает с ассоциацией has_many, просто не могу заставить ее работать с принадлежащим.

Я использую Rails 5.2.2.

Источники:

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