【发布时间】:2016-06-03 04:16:58
【问题描述】:
您好,我有一个带有 fields_for skill_of_objects 嵌套属性的 character 表单。
一些技能是根据需要添加到角色的固定数量的skills_of_objects生成的。像这样的循环会正确生成输入名称和 id 值。
<input value="224" type="hidden" name="character[skill_of_objects_attributes][0][skill_id]" id="character_skill_of_objects_attributes_0_skill_id" />
<input value="23" type="hidden" name="character[skill_of_objects_attributes][1][skill_id]" id="character_skill_of_objects_attributes_1_skill_id" />
<input value="248" type="hidden" name="character[skill_of_objects_attributes][2][skill_id]" id="character_skill_of_objects_attributes_2_skill_id" />
等等……只要在主迭代中完成,它就会给出正确的索引号。
但是当我让 ajax 追加 fields_form 时,我正在创建新的 f builder:
<%= form_for [current_user, @character] do |f| %>
$('#skill_list').append("<%= j render partial: 'add_skill', locals: { character: @character, skill: @skill, f: f } %> ");
<% end %>
伴随着这个我失去了正确的索引值,并且附加的部分生成了索引为 0 的输入:
<input value="244" type="hidden" name="character[skill_of_objects_attributes][0][skill_id]" id="character_skill_of_objects_attributes_0_skill_id" />
问题:
如何设置此输入字段的正确值。
【问题讨论】:
-
表单没有循环,所以它只通过部分发送一个值。您是否在表单中使用循环?这可能就是答案。
-
我只对附加表单使用部分,因为我需要,显示不同的静态表单。
标签: ruby-on-rails ajax fields-for