Rails:如何在URL形成中转义&符号

pal*_*ani 5 url ruby-on-rails

我有一个link_to像以下一样的帮手:

<%= link_to "example & text", url_for(:controller =>'example', :title=>"example & text") %>
Run Code Online (Sandbox Code Playgroud)

它构成了URL的框架 http://localhost:3000/example?title=example&amp:text

在示例控制器中,它调用index方法但params[:title]返回值example&amp:text.

我希望有一个像"示例和文本"的值.所以,我曾尝试 CGI::escape()CGI::escapeHTML(),但没有运气.

idl*_*ers 12

网址需要使用CGI.escape以下方式进行转义:

link_to "example & text", :controller => "example", :title => CGI.escape("example & text")
Run Code Online (Sandbox Code Playgroud)

这应该产生如下:

<a href="/example?title=example+%26+text">example & text</a>
Run Code Online (Sandbox Code Playgroud)

然后,无论你想在哪里使用它,你都可以再次使用它以使其恢复正常:

CGI.unescape params[:title] # => "example & text"
Run Code Online (Sandbox Code Playgroud)