前提・実現したいこと
現在、Railsでポートフォリオを作っている最中の者です。投稿した記事にいいねができる機能があります。
そこで、いいねのついた数が多い順に、データベースから記事のデータを取り出したいのですが、
どのようなSQL文をかけばよいかわからず詰まっております。
下記にPostモデル(投稿記事のモデル)、Likeモデル(いいねのモデル)を掲載させていただきます。
また、この二つは「has_many」と「belongs_to」でモデルの紐付けはしています。
よろしくお願いいたいします。
Postモデル(投稿記事のモデル)
create_table "posts", force: :cascade do |t| t.text "content" t.bigint "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false end
Likeモデル(いいねのモデル)
create_table "likes", force: :cascade do |t| t.integer "user_id" t.integer "post_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false end
試してみたこと
Post.all.order("count(likes) desc")をconsoleで打ちましたが、ダメでした。(そもそも構文が間違っているかもしれませんが・・)
補足情報(FW/ツールのバージョンなど)
Rails: 5.2.3
DB: Postgresql
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。