ruby-on-rails 在'Rails应用程序的标题选项卡中显示为“”的撇号

a0zr77ik  于 2023-05-02  发布在  Ruby
关注(0)|答案(2)|浏览(90)

在我的Rails应用程序的标题选项卡中,撇号显示为“”。其他地方的撇号都正确出现。如何纠正此问题?
谢谢大家。

p8ekf7hl

p8ekf7hl1#

我不确定你是否希望撇号显示为''
如果你把你的撇号放在双引号字符串中,那么它将正确呈现:

<title><%="example 'title'" %></title> #=> example 'title'

如果你把&#39;放在双引号的字符串中,那么它将在写入时返回。

<title><%="example &#39;title&#39;" %></title> #=> example &#39;title&#39;

最后,如果你想使用&#39;并正确解析它,那么你可以使用raw

<title><%=raw "example &#39;title&#39;" %></title> #=> example 'title'

如果它没有按预期工作,那么它可能是浏览器问题,但是,我已经测试了Firefox和Safari的现代版本,它工作正常。

44u64gxh

44u64gxh2#

帮助那些有“谷歌福”的人。
如果你在这里是因为你在每个页面上都做了rails标题,比如SO: rails-how-to-change-the-title-of-a-page,并且有记录,你的撇号出现在&#39中,只是想用'(即My Dog's Pants而不是My Dog&#39s Pants),那么你可以检查这个使用ruby字符串插值#{}.html_safe的答案。
Passing string with apostrophe to helper method doesn't display correctly
例如,我在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? %>

相关问题