Структура таблицы:
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.
Источники: