Techioz Blog

Ruby Gem ActiveRecord 複数条件の検索メソッド

概要

user、post、like の 3 つのデータベース テーブルを使用して Sinatra アプリケーションを構築しています。 次のように、同様のテーブル内のエントリを検索するクエリを実行したいと思います。

FIND in like WHERE user_id == params[:user_id] AND post_id == params[:post_id]

(1 つの条件として、Like.find_by_user_id(params[:user_id]) を使用します)

私の質問 ActiveRecord Gem を使用して複数の条件で検索クエリを実行するにはどうすればよいですか?

解決策

次の場合に使用します。

Like.where('user_id = ? AND post_id = ?', params[:user_id], params[:post_id])

または

Like.where('user_id = :user_id AND post_id = :post_id', params)

where のパラメーターは、params[:post_id].to_i など、予期される型に変換する必要があることに留意することが重要です。