Rails и Globalize - присоединиться к таблице перевода связанной модели в области видимости

Я хочу заказать некоторые записи модели, которая имеет отношение к другой модели (с переведенными атрибутами). Вот пример:

  1. У меня есть модель Project
  2. У меня есть модель Задача
  3. У меня есть отношение Проект имеет_много Задачи
  4. Модель Task имеет глобализированный атрибут name (в таблице task_translations).

Теперь я хочу упорядочить все проекты по названию задач. Как я могу написать эту область? Как я могу присоединиться к таблице перевода в Rails, как метод with_translation в gem globalize (https://github.com/globalize/globalize/blob/eccb924ac9641b52399f22525b0e3ec004739f4c/lib/globalize/active_record/class_methods.rb), но из связанного объекта Project?

> Project.all.joins(:tasks) ... (how to include task translation table) ...

person phlegx    schedule 10.02.2015    source источник


Ответы (1)


Я считаю, что task_translations напрямую связано с tasks, и вы можете запросить его так:

Project.joins(tasks: :translations)
person gabrielhilal    schedule 10.02.2015
comment
И вот как вы получаете доступ к таблице Project.joins(tasks: :translations).where("task_translations.name = ?", "todo") } - person Epigene; 22.10.2015
comment
@Epigene А как насчет разных локалей? - person Talha Shoaib; 05.03.2019
comment
@TalhaShoaib Предполагая, что языковой стандарт является столбцом в таблице task_translations, это должен сделать дополнительный .where("task_translations.locale = ?", locale). - person Epigene; 05.03.2019