在我的Rails应用程序的标题选项卡中,撇号显示为"'"。在其他地方,撇号显示正确。我该如何解决这个问题?
谢谢。
谢谢。
我不确定您希望撇号显示为'
还是'
。
如果您将撇号放在双引号字符串中,则可以正确呈现:
<title><%="example 'title'" %></title> #=> example 'title'
'
放在双引号字符串中,则其将按照原样返回。<title><%="example 'title'" %></title> #=> example 'title'
最后,如果您想使用'
并使其被正确解析,则可以使用raw
。
<title><%=raw "example 'title'" %></title> #=> example 'title'
为了帮助那些需要提高他们的“谷歌功夫”的人。
如果您在这里是因为您正在每个页面上使用rails标题,例如SO:rails-how-to-change-the-title-of-a-page,并且记录中您的撇号出现了',而您只想要一个'(即My Dog's Pants
而不是My Dog's Pants
),那么您可以查看这个答案,它使用了ruby字符串插值#{}
和.html_safe
。
作为示例,我在我的post.rb
模型中放置了一个方法:
def page_title
"#{ id.to_s + " - " + name }".html_safe
end
然后在我的posts_controller.rb
中,我有:
@title = @post.page_title
然后在我的application.html.erb
文件中有:
<body>
<title><%= ("Post - " + yield(:title) + " - " unless yield(:title).blank?).to_s + "jaykilleen.com" %></title>
</body>
然后在我的帖子的show.html.erb
中,我有:
<% content_for :title, @title if @title.present? %>
html_safe
,因为它可能会在用户内容(如账户名称等)上存在安全隐患。请使用sanitize(yield(:title))
。它可以正确地呈现撇号,并删除任何危险的XSS代码。 - Joshua Pinter