各車にメーカーがあり、複数のスタイルを持つことができるデータベースから車を取得しようとしています。
たとえば、フォードフィエスタはクーペ、セダン、ハッチです。
モデルに関係を設定しましたが、結果を返すクエリを作成したいと思います。クエリの構成は、提供されるパラメーターによって異なります。
これは私がこれまでに持っているものです
条件={} params [:manufacturer_id] .blank?を除いて、conditions [:manufacturer_id] = params [:manufacturer_id]?#これはうまくいきます! 条件[:style_id] = "style_id IN(?)"、params [:style_ids] .blank?#これはそれを壊します:( 車=Car.find(:all、:conditions =>条件) return render:json=>車
返されるエラー
PG::Error: ERROR: column cars.style_ids does not exit
はもちろん、style_idがと呼ばれる結合テーブルにあるためcars_styles
です。条件内で検索するテーブルをActiveRecordに指示する方法はありますか?
ここで重要なのは、存在するパラメータを取得して適切なクエリを作成するコントローラメソッドを1つだけにしたいということです。したがって、manufacturer_idがない場合は、スタイルのみを照会します。その逆の場合も同様です。もちろん、後で他のパラメータも追加します。