Apostrophes are appearing as "'" in the title tabs of my Rails application. Everywhere else the apostrophes appear correctly. How may I correct this issue?
Thank you.
Apostrophes are appearing as "'" in the title tabs of my Rails application. Everywhere else the apostrophes appear correctly. How may I correct this issue?
Thank you.
I'm not sure whether you want the apostrophe to appear as '
or as '
.
If you put your apostrophe in double quoted strings then it will render correctly:
<title><%="example 'title'" %></title> #=> example 'title'
If you put '
inside double quoted strings then it will be returned as it is written.
<title><%="example 'title'" %></title> #=> example 'title'
Finally, if you want to use '
and have it parsed correctly then you can use raw
.
<title><%=raw "example 'title'" %></title> #=> example 'title'
If it is not working as expected then it may be a browser issue, however, I have tested with modern versions of Firefox and Safari and it is working correctly.
To help those with their "Google Fu".
If you are here because you are doing the rails title on every page like SO: rails-how-to-change-the-title-of-a-page and have records where your apostrophe is appearing with the ' and simply want it with an ' (ie My Dog's Pants
instead of My Dog's Pants
) then you can checkout this answer that uses ruby string interpolation #{}
and .html_safe
.
Passing string with apostrophe to helper method doesn't display correctly
As an example, I put a method in my post.rb
model:
def page_title
"#{ id.to_s + " - " + name }".html_safe
end
Then in my posts_controller.rb
I have:
@title = @post.page_title
Then in my application.html.erb
I have:
<body>
<title><%= ("Post - " + yield(:title) + " - " unless yield(:title).blank?).to_s + "jaykilleen.com" %></title>
</body>
Then in my show.html.erb
for posts I have:
<% content_for :title, @title if @title.present? %>