2

Rails 3 Active Record モデル (postgres db) を使用して、次のようなユーザー検索入力を取得したいと考えています。

"some string, some other string, final string"

そこから、コンマで文字列を分割し、次のような SQL クエリを作成します。

SELECT * FROM items WHERE item_name SIMILAR TO '%(some string)%' OR item_name SIMILAR TO '%(some other string)%' OR item_name SIMILAR TO '%(final string)%'

Rubyの構文に慣れていないため、このクエリを作成する方法を考え出すのに苦労しています。

4

3 に答える 3

1

これはうまくいくはずです。

search_string = "some string, some other string, final string"

strings = search_string.split(", ").map{|s| '%' + s + '%'}
instructions = ''
strings.each do |string|
  instructions <<  ' OR ' unless instructions == ''
  instructions <<  'item_name like ?'
end
DatabaseTable.where(instructions, *strings)
于 2013-09-21T00:57:09.730 に答える