Вот запрос:
@projects = @user.projects.includes(:company => :workers)
На мой взгляд, я хочу упорядочить список этих проектов по тегам , которые принадлежат компании.
Итак, сначала идут проекты, принадлежащие тегу urgent
компании, затем elevated
, а затем всем остальным.
Я думаю, что один из способов сделать это - определить @companies
, а затем определить:
@urgent = @companies.tagged_with('urgent')
@elevated = @companies.tagged_with('elevated')
@others = @companies.tagged_with('urgent', 'elevated', :exclude => true)
# view:
@urgent.each do |u| ... end
@elevated.each do |e| ... end
@others.each do |o| ... end
1.Как я могу получить @companies в первую очередь?
Как вы можете собрать все компании вместе, когда первый запрос - это тот, который я показал вверху?@companies = @projects.collect{|p| p.company}
создает массив без возможности поиска.
2.Есть ли более элегантный способ отображения проектов, чем три цикла?