On Aug 4, 2011, at 11:25 PM, Kleber Shimabuku wrote:

hi Walter,

thank you for replying.

it's inside the form_for code block


Either engage the debugger or put a simple puts statement inside your view helper, and see what exactly builder is pointing to at that point. If it's nil, then step up a level, into the view partial, and see what f is set to just before it is passed to the helper. Lather, rinse, repeat, until you figure out where this property is being dropped. If other aspects of your page are working, and just this one thing is not, then you've obviously re-assigned the variable at some point (my money is on a typo). I just built a site following this Railscast last month, and it went perfectly.

Walter



On Aug 5, 5:41 am, Walter Lee Davis <[email protected]> wrote:
On Aug 4, 2011, at 4:24 PM, Kleber Shimabuku wrote:

A friend of mine just realize that the problem is related to the
javascript add function.

And now I'm trying to fix it.

 <div><%= add_child_link "Add Part", f, :item %></div>

Look outside of this line. Are you sure you are inside of the
`form_for @your_model do |f|` loop at the moment you see this line?
The error sounds like you're outside of it, and thus builder.object
(inside the helper) doesn't resolve to @ your_model.

Walter









on my Item model I hold the accepts_nested_attributes_for :item_parts

but I still getting a error

undefined method `klass' for nil:NilClass

this error refers to the object variable on this:

 def add_child_link(name, form_builder, association)
   object =
form_builder
.object.class.reflect_on_association(association).klass.new
...
end

any help?

On Aug 4, 8:13 pm, Kleber Shimabuku <[email protected]> wrote:
I'm using nested_attributes and trying to implement the add/remove
fields on-the-fly throu ajax following Ryan Bates screencast about
Nested Model (#196)

Doing this, it works fine:

    <%= f.fields_for :item_parts do |parts_form| %>
      <p class="fields">
        <%= parts_form.label :part_id %>
        <%= parts_form.select :part_id, Part.all.collect { |x|
[ x.title, x.id ]} %><br />
        <%= parts_form.hidden_field :_destroy %>
        <%= link_to_remove_fields "remove", parts_form %>
      </p>
    <% end %>

But when trying to pass the form fields to a partial like this, it
returns the following error:

undefined method `part_id' for #<Part:0x00000103c4fed8>

Extracted source (around line #3):

    1: <p class="fields">
    2:   <%= f.label :part_id %>
    3:   <%= f.select :part_id, Part.all.collect { |x| [ x.title,
x.id ]} %><br />
    4:   <%= f.hidden_field :_destroy %>
    5:   <%= link_to_remove_fields "remove", f %>
    6: </p>

The relevant code for the form calls the partial:

    <%= f.fields_for :item_parts do |parts_form| %>
      <%= render 'part_fields', :f => parts_form %>
    <% end %>

partial: /part_fields.html.erb

    <p class="fields">
      <%= f.label :part_id %>
      <%= f.select :part_id, Part.all.collect { |x| [ x.title,
x.id ]}
%><br />
      <%= f.hidden_field :_destroy %>
      <%= link_to_remove_fields "remove", f %>
    </p>

So, any help on what I am doing wrong at this point?

--
You received this message because you are subscribed to the Google
Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-
[email protected].
To unsubscribe from this group, send email to 
[email protected]
.
For more options, visit this group 
athttp://groups.google.com/group/rubyonrails-talk?hl=en
.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails- [email protected]. To unsubscribe from this group, send email to [email protected] . For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en .


--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to