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

EvanYa · 2016年11月14日 · 最后由 EvanYa 回复于 2016年11月15日 · 1525 次阅读
对于在 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.图片我实际上是先截图第二三次的,然后截图第一次的后台是这样的)

请检查你这个句法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
需要 登录 后方可回复, 如果你还没有账号请 注册新账号