Задать вопрос
@john_bob

Scopes for belongs_to?

в документации Rails Guides есть такой пример
class Book < ApplicationRecord
  belongs_to :author, -> { where active: true }
end


Разъясните пожалуйста, что дает эта часть ?
:author, -> { where active: true }
  • Вопрос задан
  • 43 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
  • Thinknetica
    Оптимизация Ruby/Rails-приложений
    9 недель
    Далее
Решения вопроса 1
2ord
@2ord
Конструкция
-> { where active: true }означает, что при ассоциации принадлежности к модели :author будет выполняться замыкание (lambda, или просто анонимный метод), внутри которого фильтруются записи авторов книги, у которых свойство active является true.
Иными словами: Author.where({ active: true })
Таким образом, при поиске книги остальную часть, касающуюся ассоциации с книгой, RoR добавит сам, выполня SQL INNER JOIN между двумя таблицами.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы