Skip to content

Commit 70a7197

Browse files
committed
Allow nested associations with same name ryanb#237
1 parent 8655e35 commit 70a7197

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

vendor/assets/javascripts/jquery_nested_form.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,22 @@
2121
// or for an edit form:
2222
// project[tasks_attributes][0][assignments_attributes][1]
2323
if (context) {
24+
var prevParentsId = "";
25+
var prevParentsName = "";
2426
var parentNames = context.match(/[a-z_]+_attributes(?=\]\[(new_)?\d+\])/g) || [];
2527
var parentIds = context.match(/[0-9]+/g) || [];
2628

2729
for(var i = 0; i < parentNames.length; i++) {
2830
if(parentIds[i]) {
2931
content = content.replace(
30-
new RegExp('(_' + parentNames[i] + ')_.+?_', 'g'),
32+
new RegExp('(_' + prevParentsId + parentNames[i] + ')_.+?_', 'g'),
3133
'$1_' + parentIds[i] + '_');
34+
prevParentsId += "_" + parentNames[i] + "_" + parentIds[i] + "_";
3235

3336
content = content.replace(
34-
new RegExp('(\\[' + parentNames[i] + '\\])\\[.+?\\]', 'g'),
37+
new RegExp('(' + prevParentsName + '\\[' + parentNames[i] + '\\])\\[.+?\\]', 'g'),
3538
'$1[' + parentIds[i] + ']');
39+
prevParentsName += "\\[" + parentNames[i] + "\\]\\[" + parentIds[i] + "\\]";
3640
}
3741
}
3842
}

0 commit comments

Comments
 (0)