Quick question about helpers

"I have had success inserting straight HTML into my views by doing
something like this:

def insert_some_html
  html = '<html tags>stuff</html tags>'
  return html
end "

I think you wanted to say "inserting straight HTML into my helpers".

In case you really meant views, they should look like:

/views/test/test.rhtml (or test.erb.html if you are using Rails 2.x)

<h3>This is a test!</h3>
<p>Pure HTML code should be inserted here</p>
<p>If you want to use Ruby code use <%= 'this' %> form.</p>
<% for client in @customers do %>
  <%= h client.name %>
<% end %>
<p>Notice that '<% %>' is the container for Ruby code. '<%=' returns
the code inside the container. '<%' does not return code, used for

To insert HTML in your helpers you can use something like

module MyHelper
  def show_last_5_posts
    "<p>This will return
    all this code</p>"

Then in the view you would use:

<p>Last five posts:</p>
<%= show_last_5_posts %>

I don't like this approach. It inserts HTML code inside Ruby code,
which is ugly. I use helpers to format links, strings, etc, like, for
example, link_to_if_authorized.

If you have this "static" HTML code that shows the last 5 posts, you
can create a partial. A partial is just like a view, it is named
_partial.rhtml (for example _test.rhtml for a test partial) and you
can render it trough <%= render :partial => 'test' %>.

So, a good approach for you would be to have a partial named
recent_posts (file name _recent_posts.rhtml):

<p>Last five posts:</p>
<% for post in posts %>
  <%= h post.title %><br />
  <%= h post.text %><br />
<% end %>

In the view (ie home.rhtml) you would have
<p>Hi all!</p>
<%= render :partial => 'recent_posts', :locals => { :posts => @posts }

The :locals => { :posts => @posts } thingy in the render call above
tells that the local variable 'posts' in the partial receives the
@posts variable (which should exist in the view).

You should read this article:

Will help you a lot. Sure did help me!