[英]Ruby on Rails - Order objects by field of a has_many relation
我是初學者。
如何加載具有以下條件的數據庫。
我想顯示按comment.created_at DESC排序的演講列表
schema.rb
create_table "comments", force: :cascade do |t|
t.text "content"
t.integer "user_id"
t.integer "lecture_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "likedcount", default: 0
end
create_table "lectures", force: :cascade do |t|
t.string "subject"
t.string "professor"
t.string "major"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "uptachi", default: 0
t.integer "hatachi", default: 0
end
lecture.rb
has_many :comments
comment.rb
belongs_to: lectures
您需要將其編寫為:
has_many :comments, -> { order("comments.created_at DESC") }
根據OP的評論,看來他想要的是一個命名范圍。 喜歡,
scope :order_by_comments, -> { joins(:comments).order("comments.created_at DESC") }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.