Partials and making it DRY

I'm trying to take advantage of partials to display a random testimonial a few pages and I think my newness is getting in the way here, I'm hoping someone can offer some assistance.

In my controller I have:

def index   @title = "Testimonials"   @testimonials = Testimonial.find(:all) end

def random   @testimonials = Testimonial.find(:first, :order => 'RAND()') end

Now I have a partial for random, but how would I get it to call the random method? The display is similar to the all display of (without the loop):

<% if @testimonials.blank? -%>   <p>There are currently no testimonials.</p> <% else -%>   <blockquote>     <p><%= testimonial.comment %></p>     <cite><%= testimonial.cite -%><% if not testimonial.company.blank? %>, <%= testimonial.company -%><% end -%></cite>   </blockquote> <% end -%>

Lastly as well, being that the full list and the random code is so similar minus the loop - is there a way I can make this a little more DRY by having it in the same partial somehow?

Thanks a lot everyone,

Blaine

You can wrap it in a helper in application_helper

def show_random_testimonials   @testimonials = Testimonial.find(:first, :order => 'RAND()')   render :partial => 'shared/testimonials' end

Then in your rhtml

  <%= show_random_testimonials %>

Thanks Meech - but what should the output partial rhtml look like? - I'm still getting a "undefined local variable or method `testimonial'" on what I have:

<% if @testimonials.blank? -%>   <p>There are currently no testimonials.</p> <% else -%>   <blockquote>     <p><%= testimonial.comment %></p>     <cite><%= testimonial.cite -%><% if not testimonial.company.blank? %>, <%= testimonial.company -%><% end -%></cite>   </blockquote> <% end -%>

Ok I've got it... I was confusing the testimonial.comment from the loop because I was doing a "for testimonial in @testimonials" so I was referencing the incorrect method in the view. Simple neophyte mistake.

Thanks,

Tim