У меня есть приложение rails, где пользователям назначаются проекты в качестве проекторов. Теперь я хочу показать список проектов, которым назначен пользователь. Это работает, но я также хочу сортировать его по имени клиента, а затем по имени проекта. Как я могу это сделать?Сортировка по родительскому атрибуту
Таким образом, у клиента есть проекты __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ И projectuser принадлежит как пользователю, так и проекту. Теперь я хочу сортировать по client.name и project.name. Это метод, который возвращает несортированные проекты:
class User < ActiveRecord::Base
def active_projects(year=nil, month=nil, day=nil)
self.projectusers.where("start_date <= ? and (end_date IS NULL or end_date >= ?)", Date.new(year,month,day).end_of_month, Date.new(year,month,day))
end
end
Возможно, мне нужно включить или присоединиться к проектам и клиентам?
Спасибо, это работает для проектов, потому что является прямым родителем projectuser. Но для клиента это не работает, потому что это родитель проекта вместо projectuser, поэтому уровень выше. – John
О, извините, я неправильно понял ваш вопрос! Если вы хотите присоединиться к нескольким таблицам один за другим, вам просто нужно использовать хэш: 'joins (table1: {table2: table3}'. Я редактирую свой ответ. Надеюсь, это будет лучше –
Да, это отлично работает, спасибо – John