Ruby on Rails でIN句を使う方法

アソシエーションしていないテーブルの
検索結果を元に検索を行う場合
(あまりそういう事例には出くわしたくないものですが…)。

IN句を使いたいのですが、手持ちの教本には
載っていなかったので調べました。

プレースホルダを使って指定するようです。
分かれば簡単ですね。

# ユーザーのライセンス情報を取得
@a_table = @user.license_flgs

# IN句に挿入する配列を準備
@in_string = Array.new(0, nil)

# ユーザーのライセンス情報のIDを抽出して配列に格納
@a_table.each do |sdk|
  @in_string.push(sdk.id)
end

# プレースホルダを指定
@products = Product.where('id IN(?)', @in_string).group('etype, ver')


コメント

この記事へのコメントはありません。

CAPTCHA


PAGE TOP