0

現在、Rails 3 アプリケーションで、2 つの配列が重複しているすべてのオブジェクトを選択しようとしています。

私は次のことを試しました:

Contact.where("possible_unique_keys && ?" c.possible_unique_keys)

これにより、次のことが得られます。

array value must start with "{" or dimension information

そこで、次のように、後者のレコードを postgresql 配列に変換しようとしました。

Contact.where("possible_unique_keys && string_to_array(?)", c.possible_unique_keys)

これにより、次のことが得られます。

operator does not exist: character varying[] && text[]

&& を正しく評価する形式に両方の配列を取得するにはどうすればよいですか?

4

1 に答える 1

1

今のところ解決したと思います.Ruby配列からpostgresql配列へのクエリを作成する方法を考え出しまし.

文字列のリスト ["bill"、"joe"、"stu"、"katie"、"laura"] が与えられた場合、postgresql にそれらを認識させるために、少しアクロバットを行う必要があります。これは、リクエストを構築するためのソリューションです。

request = "SELECT * from  Contacts where possible_unique_keys && \'{"
list.each do |key|
    key.gsub("'", "\\'")
    if key == c.possible_unique_keys.last
        request << "\"#{key}\"}\'"
    else
        request << "\"#{key}\", "
    end
 end
 dupes = Contacts.find_by_sql(request)
于 2013-01-31T15:22:48.157 に答える