質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

587閲覧

いいねが多い順に表示したい

renren643

総合スコア279

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/10/16 06:37

act_as_votableを利用し、いいねボタンを実装しました。そしてそのいいねが多い順に表示したいのですが、
①songsテーブルにlikesカラム(いいねの数を数えるカラム)を追加する②find_by_sql("SELECT * FROM songs order by likes DESC")で並び替えるということで実現できると思い、likesカラムを追加しました。
しかし、そのlikesカラムにいいねの数を追加するという作業がどうしたらいいのか
わかりません。(likesカラムといいねの数を紐付ける)
現状は単純にlikesカラムを追加しただけです。likesカラムにいいねの数のデータをいれるにはどうしたらいいのでしょうか?

def index if params[:user_id] @user = User.find(params[:user_id]) @songs = @user.songs.find_by_sql("SELECT * FROM songs order by likes DESC") else @songs = Song.all.find_by_sql("SELECT * FROM songs order by likes DESC") end end
create_table "songs", force: true do |t| t.string "title" t.text "body" t.datetime "created_at" t.datetime "updated_at" t.integer "user_id" t.integer "get_upvotes"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

いいねを管理するには別テーブルを作成し
文書ID、評価者IDをユニークに記載していくとよいでしょう

select 文書ID,count(*) AS 件数 from テーブル group by 文書ID ORDER BY 件数 DESC

の基本的なSQLでデータはとれます

投稿2017/10/18 01:30

yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問