&安培;字符未保留在URL参数的text_field_tag值中

时间:2017-06-23 21:29:59

标签: ruby-on-rails

我遇到的问题是&从URL参数中提取时,表单文本字段中缺少字符。其他字符似乎很好,例如引号“。

<%= text_field_tag "v0", params["v0"] %>

当我使用'r&amp; r'时,它在URL中显示为'r%26r',但最终在文本字段中显示为'rr'。

v0=r%26r

我尝试过使用URI.unescape,它在文本字段中执行相同的放置'rr'。

<%= text_field_tag "v0", URI.unescape(params["v0"]) %>

我知道现在没有考虑到零。我只需要保留那个&amp;文本字段中的字符。

1 个答案:

答案 0 :(得分:0)

Rails会自动为您解码GET和POST值。删除URI.unescape,您的代码应该可以正常工作。

RoR docs(http://guides.rubyonrails.org/action_controller_overview.html#parameters)提到这一点:

  

此示例中的实际网址将编码为&#34; / clients?ids%5b%5d = 1&amp; ids%5b%5d = 2&amp; ids%5b%5d = 3&#34;作为&#34; [&#34;和&#34;]&#34; URL中不允许使用字符。大多数情况下,您不必担心这一点,因为浏览器会为您编码,而 Rails会自动对其进行解码,但如果您发现自己必须将这些请求发送到手动服务器,你应该记住这一点。