簡體   English   中英

Ruby on Rails-通過has_many關系的字段對對象進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM