Append/Prepend to a template from controller method

I want a method in app/controllers/application.rb that can
prepend/append text to whatever template gets rendered. Of course I
can’t call render twice w/o getting a double render error, so is this
possible?

I want to redirect after a delay using a meta refresh. Here’s what I’ve
got:

app/controllers/application_controller.rb:

def redirect_after_delay (url, delay)
@redirect_delay = delay
@redirect_url = url
render
end

app/views/layouts/application.html.erb

<%= yield :refresh_tag %> <%= yield %>

So then if I want to add a redirect-after-delay, I add the following to

  1. my controller and 2) the action’s view:

app/controllers/my_controller.rb

def my_action
redirect_after_delay ‘http://www.google.com’, 3 if some_condition
end

app/views/my_controller/my_action.html.erb

<% content_for :refresh_tag do %>

<% end %>

Please wait while you are redirected...

Since the content_for block never changes, would be nice to just call
something from the redirect_after_delay method to add it to whatever
template is going to be rendered.

Hello–

On Jan 30, 2010, at 7:38 PM, Aaron Stacy wrote:

content=’<%[email protected]_delay%>;url=<%[email protected]_url%>’>
<% end %>

Please wait while you are redirected...

Since the content_for block never changes, would be nice to just call
something from the redirect_after_delay method to add it to whatever
template is going to be rendered.

Check out after filters:
http://api.rubyonrails.org/classes/ActionController/Filters/ClassMethods.html

Aaron Stacy wrote:

I want a method in app/controllers/application.rb that can
prepend/append text to whatever template gets rendered.

[…]

This is probably best done in the application layout, or else in a
before_filter.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Marnen Laibow-Koser wrote:

This is probably best done in the application layout, or else in a
before_filter.

I think you’re right, I may have been trying to make it too complicated.
Thanks for the suggestions.