Forum: Ruby on Rails dynamic layout - title for google page rank

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
minka (Guest)
on 2007-07-30 09:45
(Received via mailing list)
Google likes titles to be distinct for every page and they use that
for page rank. My old layout had the same title for every page. I
looked up
dynamic layout in this group and followed the suggestion for
page specific titles. Now I have a
 '@title'
variable in the controllers, I assign it in index and other routines
like this:
'def index
  @title = "something"
end'
whatever is the appropriate title for that page and then in the layout
I have
'<title> <%= @title => </title>'

This WORKS in the test environment but when I capistrano upload the
app to the production environment title is ALWAYS blank, an empty
string.

Any suggestions?
thanks,

minka
http://www.beelucid.com
Robby R. (Guest)
on 2007-07-30 10:30
(Received via mailing list)
minka wrote:
> end'
> whatever is the appropriate title for that page and then in the layout
> I have
> '<title> <%= @title => </title>'
>
> This WORKS in the test environment but when I capistrano upload the
> app to the production environment title is ALWAYS blank, an empty
> string.
>

Ah, there is a much more elegant way of doing this! :-)

ActionView has a content_for method, which you can use.

Here is a blog post explaining how it works (with some extra stuff)

http://blog.imperialdune.com/2007/3/27/dirty-views...

In a nutshell... in your application layout.


<title>DHH Gossip &raquo; <%= (title = yield :title) ? title : 'Your
source for the latest DHH gossip' %></title>


Then in your views...

# news.rhtml

<% content_for :title do %>DHH kills Bat Boy!<% end %>

When rendered, this will appear in your. As you can see, I also defined
a default string above.

You can do several content_for's in your app (sidebar, navigation,
breadcrumbs...)

Good luck!

Cheers,
Robby

--
Robby R.
http://www.robbyonrails.com/
http://www.planetargon.com/
Robby R. (Guest)
on 2007-07-30 10:32
(Received via mailing list)
Robby R. wrote:
>>   @title = "something"
> Ah, there is a much more elegant way of doing this! :-)
> <title>DHH Gossip &raquo; <%= (title = yield :title) ? title : 'Your
> a default string above.
>
> You can do several content_for's in your app (sidebar, navigation,
> breadcrumbs...)

Also, here is the documentation for content_for.

http://api.rubyonrails.com/classes/ActionView/Help...

Cheers,
Robby

--
Robby R.
http://www.robbyonrails.com/
http://www.planetargon.com/
This topic is locked and can not be replied to.