首先,我已经在一个 action 中通过 where 查询出了一个结果集@results 这时,我想在结果页面中再次添加一个查询条件,然后在 @results的基础上再次查询. 例如,我在网上选显示器,首先我按品牌查询出了一个结果页面,然后在结果页面中再按尺寸来查找。 该怎样把结果集传到再次查询的另一个 action 中呢?
@results
一般做法是在当前查询条件上再加查询条件,服务端根据新的条件再查一次
秒回啊,感谢! 但是这样的开销会不会很大呢,感觉之前的查询就浪费了啊。 能否通过参数将结果集传到新的 action 中呢?
数据量大了上搜索引擎,搜索引擎消耗也太大就把搜索结果按查询条件缓存。
但是如果新的 action 不知到原来的查询条件呢? 比如第一次可以用品牌为条件查,还可以用价格作为条件查,但是不论用那种条件,返回的结果页面都是一样的。 当结果页面将一个新的查询条件提交到 action 中时,新的查询 action 并不知道之前的结果是根据什么查出来的。
#3 楼 @Rei 看来必须要学习下缓存技术了
#4 楼 @loveltyoic 可以把 params 这个参数传给 url helper,例如
params
search_path(params.merge :new_colun => 'value')
得出当前查询条件再加上新条件的地址。
或者放在 js 做,这样查询条件区域可以缓存起来。