Rails中的路由和查询字符串魔术

时间:2015-01-28 02:19:58

标签: ruby-on-rails routes

所以,我最近看到了这段代码:

<%= link_to "Index", plays_path(id: 1) %>

1)我不知道索引路径或plays_path接受了参数。该网址没有任何命名参数,因此我认为您无法做到。

2)我读过有关查询字符串但文档并不是很好。 ActionView UrlHelper

没有使用单词查询字符串。你怎么能把任何哈希传递给rails中的路径并让params在下面的控制器中可用?这是怎么回事?

2 个答案:

答案 0 :(得分:0)

你完全正确。您传入URL /路径助手(不属于命名路径的任何参数,例如:id)的任何参数都将作为控制器中的参数提供。

Rails Routing Guide谈论了一些参数,并且始终是如何最好地利用通过_url_path帮助程序传递的其他参数的好资源。

答案 1 :(得分:0)

所有路径助手都在最后获取参数的哈希值。它们作为额外参数传递给查询字符串。例如:plays_path(id: 1)将(可能)生成/plays?id=1。您可以在user_path(user, active_user: 5, secure: 1, other_thing: 'happy') user User 30的{​​{1}}实例/user/30?active_user=5&secure=1&other_thing=happy生成{{1}},在最后添加一大堆内容。大多数时候这些都是GET参数。