I have a nested_form where nested elements are dynamically added and removed in a form, using Javascript.
I've got this whole piece working for the new
action - elements add and destroy, and everything save开发者_开发问答s as it should.
When accessing the edit
action, I get the correct parent element but the child elements do not display - instead, the edit
view teases me with a lingering (and unhelpful) 'Add Option' button.
Where might I be going wrong here?
try the gem cocoon it's really handy and takes care of the nested forms javascript for you!!
Here's the link http://www.dixis.com/?p=454&lang=nl
I had this exact same problem, and discovered that it was down to the "fields_for" block that created the nested elements. For instance, I had:
<%= nested_form_for(@recipe) do |f| %>
# Stuff for parent...
<% f.fields_for :recipe_ingredients do |ingredient_form| %>
# Stuff for nested form...
<% end %>
# etc.
This line needed to be a <%=
block, not a <%
block as above, i.e.
<%= nested_form_for(@recipe) do |f| %>
# Stuff for parent...
# The following line has changed
<%= f.fields_for :recipe_ingredients do |ingredient_form| %>
# Stuff for nested form...
<% end %>
# etc.
That was all it needed to print out existing nested attributes on the edit form.
I had exactly the same issue (I seriously lost some hair on it). I was glad to find this question, no one else seemed to have it. My solution was "trivial": I upgraded from Rails 3.0.0 to 3.0.6 (3.0.7 brought up another issue) on my Windows Box.
I did not investigate any further, 'coz it works now. I did not change any single line of code. Perhaps this is a valid fix for ya, too.
Plz, let me know...
Regards, Dirk
Check out your form for editing the resource.
Try to use instance variable in parent form, like this:
<%= form_for @parent_resource do |form| %>
... some field ...
<%= form.fields_for :children_resources do |f| %>
...
<% end %>
精彩评论