3

我在我的 Rails 3.2.9 应用程序中遇到了一件非常奇怪的事情——当我渲染这个时:

render inline: BusinessesController.checkout_page_url(...)

用这个方法:

def self.checkout_page_url(business, order_number)
  url = ''
  # ...
  url << 'currency=' << conf['currency'] << '&'
  # ...
  puts url
  return url
end

然后生成的 url 在控制台 ( ) 中呈现得很好puts url

... currency=EUR& ...

但浏览器中呈现的字符串显示:

... ¤cy=EUR& ...

我尝试.html_safe在渲染之前调用字符串,但没有改变任何事情。当更改currencycurency(有错字)时,一切都很好。

这是怎么回事?

4

1 回答 1

4

这是因为 ¤ 的 HTML 代码是 ¤。检查http://www.ascii.cl/htmlcodes.htm

所以浏览器正在用符号替换它。

要解决它,请尝试执行以下操作:

<%= h url%>

在你看来。其中 'h' 是用于转义的旧 Rails 助手。

于 2013-09-04T08:30:19.160 回答