Rails link_to 解释参数出现重复,请问各位大神为什么?

EvanYa · 2016年11月14日 · 最后由 EvanYa 回复于 2016年11月15日 · 1038 次阅读
对于在view层做处理,我也知道不合适,但是我还要实现对查询结果进行筛选,哪位大神能说一下如何实现这个条件还不用在view层处理呢?

代码如下

<%= params[:q] %><br>
<%= params %>
<%= link_to "Type2", articles_path(params.except!("controller", "action", "q[article_content_type_id_eq]").merge("q[article_content_type_id_eq]" => "3")) %>
<%= link_to "Type3", articles_path(params.except!("controller", "action", "q[article_content_type_id_eq]")) %>
我最终是在model处理在controller调用, view中使用实例变量(params中controller和action要移除否则后台会有警告)

结果如图所示,看Type2和Type3的链接地址

第一次载入后

第二三。。次后

后台界面如图所示

麻烦各位大神帮我看一下到底在哪里出了问题,谢谢(ps.图片我实际上是先截图第二三次的,然后截图第一次的后台是这样的)
共收到 3 条回复

请检查你这个句法params.except!("q[article_content_type_id_eq]") 我觉得你没有except掉你的参数,因为是nested的,你可能需要对参数q进行逐个检验处理。。。 整体上, 我觉得你在view里处理参数的设计有问题。。。

#1楼 @flemon1986 哦,参数nested 我再试试其他方式。 为了实现查询结果再进行筛选,我看到淘宝的筛选条件链接地址动态变化,为了达到相同的目的我就这么做了,当然我也知道这样处理不好,可是我暂时也没想到其他方式,要是您有更好的方式麻烦您能不能说一下,非常感谢

EvanYa 关闭了讨论 11月15日 09:24
EvanYa 重新开启了讨论 11月15日 09:24

#1楼 @flemon1986 我如果把参数在controller或是model中定义一个变量,将处理过后的Hash值存入,然后在view中调用,您看能不能好点?

EvanYa 关闭了讨论 11月15日 10:15
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册