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.