К сожалению, ActiveRecord select
заменяет существующее предложение SELECT
вместо добавления к нему, поэтому я не могу составлять запросы.У кого-нибудь есть обходной путь?
Пример модели:
class Story
scope :recent, -> { where("created_at >= ?", 1.month.ago) }
# deliberately simple examples, please don't get distracted memoizing, etc.
scope :with_net_score, -> { select("`stories`.*, (upvotes - downvotes) as net_score" }
scope :with_recent, -> { select("`stories.*, greatest(updated_at, last_vote_at) as recent") }
end
Так что пока я могу сочинять Story.recent.with_net_score
, Story.with_net_score.with_recent
не получается.И оба with_net_score
и with_recent
терпят неудачу, когда Story
приходит после объединения с ассоциацией.
Как бы вы переписали with_net_score
, чтобы он добавлялся к выбранным полям вместоих можно объединить с with_recent
и объединяет?