我正在尝试从我的数据库中检索汽车,其中每辆车都有制造商,并且可以有多种款式。
例如,福特嘉年华是双门轿车、轿车和掀背车。
我已经在我的模型中设置了我的关系,但现在我想创建一个查询来返回结果。查询构造将取决于提供的参数。
这是我到目前为止所拥有的
条件 = {}
条件[:manufacturer_id] = params[:manufacturer_id] 除非 params[:manufacturer_id].blank? # 这行得通!
条件[:style_id] = "style_id IN (?)", params[:style_ids] 除非 params[:style_ids].blank? #这打破了它:(
汽车 = Car.find(:all, :conditions=> 条件)
返回渲染:json =>汽车
返回的错误
PG::Error: ERROR: column cars.style_ids does not exit当然是因为 style_id 在名为cars_styles. 有没有办法告诉 ActiveRecord 在条件内查找哪个表?
这里的关键是我只想有一个控制器方法,它获取现有的参数,然后创建正确的查询。所以如果我没有manufacturer_id,它只会查询样式,反之亦然。当然,我稍后也会添加其他参数。