2016-06-03 3 views
0

안녕하세요, character fields_for skill_of_objects 중첩 된 특성 가진 양식이 있습니다.아약스 추가 된 중첩 된 fields_for 양식을 인덱스를 설정하는 방법

일부 기술은 문자에 추가해야하는 고정 숫자 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" /> 

등 ... 이것은 주 반복에서 수행되는 한 적절한 색인 번호를 제공합니다.

하지만 아약스는 APPEND fields_form, 나는 새로운 f 빌더 만드는거야 할 때 :

<input value="244" type="hidden" name="character[skill_of_objects_attributes][0][skill_id]" id="character_skill_of_objects_attributes_0_skill_id" /> 
이 나는 ​​적절한 인덱스 값을 느슨하게하고, 0 인덱스 입력을 부분적으로 생성 추가로

<%= form_for [current_user, @character] do |f| %> 
    $('#skill_list').append("<%= j render partial: 'add_skill', locals: { character: @character, skill: @skill, f: f } %> "); 
<% end %> 

와 함께를

문제점 :

방법이 입력 필드 corrct 값을 설정한다.

+0

양식은 루프를 수행하지 않으므로 부분을 통해 하나의 값만 보냅니다. 양식에 루프를 사용하고 있습니까? 그 대답 일 수 있습니다. –

+0

첨부 된 양식에만 partial을 사용합니다. 정적 양식을 다르게 표시해야하기 때문입니다. – Kazik

답변

0

내 커피 스크립트의 행동에 스트라이핑 인덱스 값에 종료 :

name = $('#skill_list li.skill:last input').attr('name') 
    index = name.replace /[^0-9]/g, '' 

내 APPEND 부분적인 매개 변수로 전달을 증가하고, id 적절한 생성하고, name.

%li.skill{ id: "skill_#{skill.name_pl.squish.tr(' ','_')}"} 
    = f.fields_for :skill_of_objects, character.skill_of_objects.build do |ff| 
    %strong 
     = skill.name_pl 
    = ff.hidden_field :skill_id, value: skill.id, name: "character[skill_of_objects_attributes][#{index}][skill_id]", id: "character_skill_of_objects_attributes_#{index}_skill_id" 
관련 문제