views:

199

answers:

2

I have a partial that I want rendered with a collection and another variable. Is it possible to pass more than one variable to a partial?

To illustrate:

Category HABTM Brands

This is just semi-pseudo-code, but I want to do something like:

<% @categories.each do |c| %>
    <%= c.name %>
    <%= render :partial => "mypartial", :collection => c.brands, :object => c.id %>
<% end %>

The partial needs the category id as well as the "current_brand". Any ideas?

+2  A: 

You can give a partial any number of variables with the :locals option. It takes a hash of variable names and values.

Chuck
+2  A: 

Inside of your view, you pass a hash to the :locals key-value pair in the options hash argument.

<%= render :partial => 'partial', :locals => { :foo => 'a', :bar => 'b' } %>

... and these keys become available as variables in your partials.

Foo is: <%= foo %>

Bar is: <%= bar %>
Tate Johnson