I’m using Alloy’s Complex Form Example found here. The example he provides is a two level hierarchy and I’m trying to expand it to four.
He has javascript functions for adding nested items. How to expand for four nested layers?
'.add_nested_item': function(e){
el = Event.findElement(e);
template = eval(el.href.replace(/.*#/, ''))
$(el.rel).insert({
bottom: replace_ids(template)
});
},
'.add_nested_item_lvl2': function(e){
el = Event.findElement(e);
elements = el.rel.match(/(\w+)/g)
parent = '.'+elements[0]
child = '.'+elements[1]
child_container = el.up(parent).down(child)
parent_object_id = el.up(parent).down('input').name.match(/.*\[(\d+)\]/)[1]
template = eval(el.href.replace(/.*#/, ''))
template = template.replace(/(attributes[_\]\[]+)\d+/g, "$1"+parent_object_id)
// console.log(template)
child_container.insert({
bottom: replace_ids(template)
});
}
Ryan Bates has made this solution easy. Works with Rails 3 with helmerj’s comment 🙂
http://railscasts.com/episodes/197-nested-model-form-part-2
helmerj’s comment:
For the latest Rails3.rc ONe has to modify a single line:
in “module ApplicationHelper”
link_to_function(name, “add_fields(this, \”#{association}\”, \”#{escape_javascript(fields)}\”)”)
which removes the not needed h() function. Otherwise works like charm.