同じにやっても動かない

書いてある通りやっているのに動かないのです

関連付けたモデルの属性で、関連元モデルをソートする

【2013.8.10追記】この方法だと所望の結果を得られない場合があります。こちらのエントリも参照ください。


has_manyで関連付けた先のモデルが持っている属性で、元のモデルをソートしたくなりました。

以下のような2つのモデルがあります。

class Spot < ActiveRecord::Base
  has_many :report
end
class Report < ActiveRecord::Base
  belongs_to :spot
end


観光スポット情報を持つspotモデルに、訪問記事であるreportモデルが複数ぶらさがっているイメージ。


それで、登録されているレポートの日付(report.created_at)の新しい順に、spotモデルをソートして取り出したいというのが、今回やりたいこと。

ググってみたところ、逆方向のソートの方法を教えてくれているページがありました。
今回の例だと、reportモデルをspotモデルの属性でソートする方向がそれにあたります。

Railsの事だから逆方向でも大丈夫だろうと思ってやってみたところ、無事成功。
こんな感じで所望の動作をしてくれました。

class Spot < ActiveRecord::Base
  has_many :report
  default_scope :include => :report, :order => "reports.created_at DESC"
end

毎度、貴重な情報を共有くださっている皆様に感謝です。