@title is set in a controller, and to separate views from what goes on
in a controller, you shouldn't set a title of an html page in a
controller. The method yield(:title) looks for the value of a title
variable in the view, which can be set like this:
Those statements do the exact same thing in ruby. The first example
injects a second string into the first string. The second example joins
two strings together--producing a third string. So the second example is
a tiny bit more efficient.
Do you mean “#{base_title} | Home” is more efficient because it doesn’t create a new String object? (You said second one… I am not sure if I got that right.)
(I wonder why I don’t get email notifications when replies are sent… I am pretty sure I clicked “Email updates to me”…)
Do you mean "#{base_title} | Home" is more efficient because it doesn't
create a new String object?
It certainly does create a new String object--that's what the quotes do;
they tell Ruby, "Please create a new String object for me. The
difference is that the following:
base_title + "| Home"
...creates two more String objects: "| Home" and another created by +.