私はRails 5サイトで高度な検索を実装しようとしています。ユーザーはパラメータ "provider_type"を渡します。この値を含むすべてのレコードを返したいと思います。値は、シンプルフォームを使用したドロップダウンリストから選択します。私new.html.erbは、次のようになります。postgresカラムのパラメータ値の検索
<%= simple_form_for Search.new, :html => {:class => 'form-horizontal' } do |f| %>
<%= f.input :provider_type, collection: ['Mental Health', 'Medical'] %>
<%= f.button :submit %>
<% end %>
マイサーチモデルは次のようになります。
class Search < ApplicationRecord
def search_providers
providers = Provider.all
providers = providers.where("provider_type LIKE ?", ['Mental Health', 'Medical']) if provider_type.present?
providers
end
end
そして、私の検索コントローラ:
def SearchesController < ApplicationController
def new
@types = Provider.uniq.pluck(:provider_type)
end
private
def search_params
params.require(:search).permit(:provider_type)
end
end
end
私が検索してみてください " PG :: UndefinedFunction:ERROR:演算子が存在しません:文字の変化[] ~~不明
EDIT
私は
これはエラーを生成しますproviders.where(provider_type: provider_type) if provider_type.present?
として、それを言い替える「PG :: InvalidTextRepresentation:ERROR:不正な形式の配列をリテラル: "%メンタルヘルス%" 詳細:MUTアレイ値で始まります "{"または寸法情報を含む。
これはエラーを生成しますDETAIL:配列値mutは、 "{"または次元情報で始まります。 – DudeMontag