新手问题 如何在结果集中再次查询?

loveltyoic · 2013年07月11日 · 最后由 Rei 回复于 2013年07月11日 · 3277 次阅读

首先,我已经在一个 action 中通过 where 查询出了一个结果集@results 这时,我想在结果页面中再次添加一个查询条件,然后在 @results的基础上再次查询. 例如,我在网上选显示器,首先我按品牌查询出了一个结果页面,然后在结果页面中再按尺寸来查找。 该怎样把结果集传到再次查询的另一个 action 中呢?

一般做法是在当前查询条件上再加查询条件,服务端根据新的条件再查一次

秒回啊,感谢! 但是这样的开销会不会很大呢,感觉之前的查询就浪费了啊。 能否通过参数将结果集传到新的 action 中呢?

数据量大了上搜索引擎,搜索引擎消耗也太大就把搜索结果按查询条件缓存。

但是如果新的 action 不知到原来的查询条件呢? 比如第一次可以用品牌为条件查,还可以用价格作为条件查,但是不论用那种条件,返回的结果页面都是一样的。 当结果页面将一个新的查询条件提交到 action 中时,新的查询 action 并不知道之前的结果是根据什么查出来的。

#3 楼 @Rei 看来必须要学习下缓存技术了

#4 楼 @loveltyoic 可以把 params 这个参数传给 url helper,例如

search_path(params.merge :new_colun => 'value')

得出当前查询条件再加上新条件的地址。

或者放在 js 做,这样查询条件区域可以缓存起来。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号