2012-01-02 2 views
3

나는 이것을 약 1 시간 동안 파악하려고 노력해왔다. 나는 참으로 회원 모델 객체로 채워집니다 부분 컬렉션이, 내가하려고 할 때 컬렉션을 사용하여 렌더링 할 :레일 부분 컬렉션이 비어 있습니까?

내 _list.html.erb에서
<%= render :partial => 'list', :collection => @members %> 

@member_id 및 @member_email 속성은 렌더링에 비어 있습니다 html :

<%= check_box_tag('selected_member[]', @member_id, false) %> 
<%= @member_email %> 

보기가 올바르게 렌더링되고 3 개의 구성원 항목이 있지만 ID와 이메일은 비어 있습니다.

내가 뭘 잘못하고 있니? "member_id"또는 "member.id"를 사용하여 부분 멤버에 액세스하려고하면 "정의되지 않은 로컬 변수 또는 메서드 '멤버'가 표시되므로 올바른 표기법이 아닙니다.

이제 여러 가지 다른 예제를 보았습니다. 그러나 수집 방법이 내가 필요로하는 방식입니다. 상위 뷰는 여러 가지 방법으로 멤버를 그룹화 할 수 있으므로 각 멤버 만 처리하도록 partial이 필요합니다. 각 멤버에 대해 partial에 루프를 구현하면 그룹 뷰 코드를 부모 뷰의 입력 필드와 상호 작용하는 그룹 뷰 코드로 이동해야합니다. 예 : 유지하는 것이 엉망이 될 것입니다.

미리 감사드립니다.

답변

4

당신이 할 경우 :

<%= render :partial => 'list', :collection => @members %> 

레일이 경우 list에서 일부 파일 내에서 지역 변수는 부분 파일 자체와 동일한 이름이 될 것으로 예상된다. 로컬 변수가 대신 member라는 이름하려는 경우

<%= check_box_tag('selected_member[]', list.id, false) %> 
<%= list.email %> 

, 당신이 부분 파일 이름을 바꾸거나이 구문을 사용해야 하나 :

그래서 대신 member, 기본적으로는 다음과 같이 list

<%= render :partial => 'list', :collection => @members, :as => :member %> 

더 많은 정보를 원하시면 여기 (초 3.4.5.) : http://guides.rubyonrails.org/layouts_and_rendering.html

+0

도현, 감사합니다! 나는 레일스를 완전히 읽지 않은 상태에서도 레일스를 완전히 얻지 못했을 것으로 생각합니다. 나는 당신이 그것을 지적했다는 것을 지금 함축한다. 다시 한 번 감사드립니다! – garlicman

관련 문제