私はいくつかのマイナーなJSONオブジェクト(主に小さなリソース、空想はありません)を返す小さなAPIを開発しましたが、APIの1つを拡張する必要がある状況にあります現在のところ、エンドポイントはちょうど何かを返すことができます。例についてはRails 3:動的ベースのMySQLクエリのパラメータをループする
- 現在、私は私のルートに次き:
resources :school_types do
resources :schools
end
ので、ユーザーは/api/v1/school_types/1/schools.json
にアクセスした場合、学校の全体リストはschool_type_id
まあ基づいて戻ってくる、私は /api/v1/school_types/1/schools.json?param_1=foo¶m_2=bar
したがって、ActiveRecord
コールを構築すると、それは動的に生成されます渡されたパラメータに基づいて、SQLクエリを食べた
これは私がこれまで持っているものです。LOL、" = [\"state_id\", \"1\"] AND = [\"district_id\", \"1\"] AND = [\"school_type_id\", \"1\"] AND "
は明らかに私が何か間違ったことをしています:
conditions = ""
params.except(:controller, :format, :action).each_with_index do |value, index|
conditions << "#{params[index]} = #{value} AND "
end
は、これは条件変数出力されます。
返信いただきありがとうございます。私はあなたが提案した宝石を見てみるつもりです。このようなこともできますか? http://stackoverflow.com/a/6421870/282343 – dennismonsewicz
はい。サポートする必要のあるパラメータの数に応じて、MetaSearchを実装するよりもカスタムスコープを使用するほうが簡単です。重要なことは、単に文字列を連結して補間するのではなく、Railsメソッドを使用してクエリをアセンブルすることです。 – Brandan