【发布时间】:2012-12-11 06:16:15
【问题描述】:
我正在尝试从我的数据库中检索汽车,其中每辆汽车都有一个制造商,并且可以有多种样式。
例如,福特嘉年华是双门轿车、轿车和掀背车。
我已经在我的模型中设置了我的关系,但现在我想创建一个查询来返回结果。查询构造将取决于提供的参数。
这就是我目前所得到的
条件 = {} 条件[:manufacturer_id] = params[:manufacturer_id] 除非 params[:manufacturer_id].blank? # 这行得通! conditions[: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,它只会查询样式,反之亦然。当然,我稍后也会添加其他参数。
【问题讨论】:
标签: activerecord join conditional-statements