В моем приложении есть следующие модели (показаны только соответствующие области):
class Audition < ActiveRecord::Base
def self.with_new_applications
columns = self.column_names.map{|c| "auditions.#{c}" }.join(', ')
select(columns).joins(:applications).merge(Application.unreplied).group(columns)
end
end
class Application < ActiveRecord::Base
def self.unreplied
columns = Application.column_names.map{|c| "applications.#{c}" }.join(', ')
select("#{columns}, count(messages.id) as message_count").
joins('left outer join messages on messages.application_id = applications.id').
group(columns).
having('count(messages.id) = 0')
end
end
Из-за использования postgreSQL кажется, что запросы были сделаны излишне сложными по сравнению с MySQL из-за необходимости включить все столбцы для столбцов count / группировки.
Я что-то упустил? Мне это не кажется "рельсовым".
Могут ли эти запросы быть выполнены более простым способом?
Спасибо