2010-06-07 2 views
0

좋아요, 제 제목이 다소 불분명하지만 제가 겪고있는 문제를 가장 잘 설명합니다.오브젝트 콜렉션을 사용할 때 부분 렌더링시 공백 양식. 도움!

기본적으로 나는 사용자 목록을 가지고 있으며 AJAX를 사용하여 정보를 인라인으로 편집 할 수 있기를 원합니다.

사용자가 행에 나타나므로 데이터 및 양식 (처음에는 아약스에 의해 숨겨 짐)을 렌더링하기 위해 부분을 사용하지만 행이 현재 렌더링 될 때 마지막 항목 만 표시됩니다. 양식의 필드가 채워집니다.

나는 이것이 모든 양식 필드가 동일한 ID를 가지고 있으며 DOM을 혼란스럽게한다는 사실과 관련이 있다고 생각한다. 하지만 이드의 고유성을 확인하는 방법을 모르겠습니다. 내보기에서

: 여기

작은 예입니다

<%= render :partial => 'shared/user', :collection => @users %> 

내 부분 (아래 단지 형태로 파산) 나는 지역 변수 "사용자"

<% form_for user, :html => {:multipart => true} do |f| -%> 
<%= f.label :name, "Name*" %> 
<%= f.text_field :title, :class => "input" %> 
<%= f.label :Address, "Address" %> 
<%= f.text_field :address, :class => "input" %> 
<%= f.label :description, "Description*" %> 
<%= f.text_area :description, :class => "input" %> 
<% end -%> 
를 사용하고 있습니다

html이 렌더링 될 때 각 양식은 고유 ID (사용자의 ID)를 갖지만 요소 자체는 모두 동일한 ID를 가지며 마지막 사용자 양식 만 실제로 값으로 채워집니다.

누구에게 아이디어가 있습니까? :)

미리 감사드립니다.

답변

1

좋아, 점심을 먹고 일부 뇌 세포를 되찾은 후 (그리고 Google의 도움을 받아) 나는 이것을 알아 낸 것입니다.

이런 부분에 집합을 전달할 때 :

<%= render :partial => 'shared/user', :collection => @users %> 

레일 작성하면 "variable_counter"형태의 형태에 대한 인덱스를 정의하는 데 사용할 수있는 카운터 변수 :

<% form_for user, :index => user_counter, :html => {:multipart => true} do |f| -%> 

이것은 모든 필드 ID뿐만 아니라 양식 id에 색인 번호를 추가하고 나의 작은 문제를 해결합니다. :)

나는이 문제에 대해 다른 사람이 도움이되기를 바랍니다. :)

관련 문제