Undefined local variable or method?

I have:
<%= form_for(@supplier) do |f| %>


<%= render ‘sector_categories’, :locals => {:f => f} %>

in _sector_categories partial I have:

<% for category in @categories %> <%= f.check_box :category_ids[], category.id, @supplier.categories.include?(category) %> <%= category.name %>
<% end %>

Why it says: undefined local variable or method “f”?

Quoting M. [email protected]:

<% for category in @categories %>
  <%= f.check_box :category_ids[], category.id,

@supplier.categories.include?(category) %>
<%= category.name %>

<% end %>

Why it says: undefined local variable or method “f”?

As written, you are rendering a template, not a partial. Passing local
variables to templates is not supported. Do you mean

<%= render :partial => ‘sector_categories’, :locals => {:f => f} %>

HTH,
Jeffrey

On 26 December 2010 00:35, Jeffrey L. Taylor [email protected]
wrote:

As written, you are rendering a template, not a partial. Passing local
variables to templates is not supported. Do you mean

<%= render :partial => ‘sector_categories’, :locals => {:f => f} %>

But if I create a new application using scaffold I see a code like
this: <%= render ‘form’ %> and a file _form.html.rb.
So it is a partial but the render command doesn’t have :partial.
What’s correct?

On 26 December 2010 00:35, Jeffrey L. Taylor [email protected]
wrote:

As written, you are rendering a template, not a partial. Passing local
variables to templates is not supported. Do you mean

<%= render :partial => ‘sector_categories’, :locals => {:f => f} %>

As you see in Layouts and Rendering in Rails — Ruby on Rails Guides
there is no need to specify :partial.

Quoting M. [email protected]:

Rails 2.x or Rails 3?

Jeffrey

Quoting M. [email protected]:

As written, you are rendering a template, not a partial. Passing local
variables to templates is not supported. Do you mean

<%= render :partial => ‘sector_categories’, :locals => {:f => f} %>

As you see in Layouts and Rendering in Rails — Ruby on Rails Guides
there is no need to specify :partial.

Look again. Every example on that page with :locals, explicitly
specifies
:partial.

Your way isn’t working. How about trying something different. The only
way
you will find out if the Rails 2 convention, locals only for partials,
is or
isn’t true in Rails 3 is trying it. You have shown that without
:partial and
possibly some other factor, locals don’t work. Change only one thing
and run
the experiment again.

Jeffrey

On 26 December 2010 05:20, Jeffrey L. Taylor [email protected]
wrote:

Why it says: undefined local variable or method “f”?

Look again. Every example on that page with :locals, explicitly specifies
:partial.

Your way isn’t working. How about trying something different. The only way
you will find out if the Rails 2 convention, locals only for partials, is or
isn’t true in Rails 3 is trying it. You have shown that without :partial and
possibly some other factor, locals don’t work. Change only one thing and run
the experiment again.

You are right, so I’ve have notice that with rails 3 there is no need
to specify :partial unless I use local variables.