ygn*_*eus 14 ruby-on-rails params
我想传递参数(哈希)redirect_to,如何做到这一点?例如:
hash = { :parm1 => "hi", :parm2 => "hi" }
Run Code Online (Sandbox Code Playgroud)
我想重定向到页面 /hello
这样的网址: /hello?parm1=hi&parm2=hi
Jam*_*mes 24
如果你没有/ hello的命名路由,那么你必须将params硬编码到你传递给的字符串中redirect_to.
但如果你有类似的东西hello_path你可以使用redirect_to hello_path(:param1 => 1, :param2 => 2)
代替:
redirect_to some_params
Run Code Online (Sandbox Code Playgroud)
你可以做:
redirect_to url_for(some_params)
Run Code Online (Sandbox Code Playgroud)
你将params转换成一个url,url_for然后传递给它redirect_to,所以你传递的redirect_to是一个URL作为字符串,redirect_to很乐意重定向到.
注意:我不明白为什么redirect_to拒绝使用参数.它曾经愿意使用params.在某些时候,有人向Rails添加了一些内容以禁止它.这让我怀疑这样做有安全原因,如果是这样,这些安全原因可能意味着手动操作redirect_to url_for(p)也会产生安全隐患.但我还没有找到任何文件来解释这里的内容.
更新:我发现了安全警告,但尚未消化它:https://github.com/rails/rails/pull/16170
| 归档时间: |
|
| 查看次数: |
27491 次 |
| 最近记录: |