부분 렌더러 내에서 일부 상태를 어떻게 기억할 수 있습니까?부분 렌더러에서 RoR 기억
문제점 : 내 부분 _testitem.html.erb
은 testitem 컬렉션의 테이블 행을 렌더링합니다. Testitem
는 id
및 sortkey
을 가지며,이 부분
<%= render :partial => "testitem", :collection => @testbox.testitems.sort_by{|x| [x.sortkey, x.id]} %>
즉 모든 testitems 그들의 ID에 의해 다음 sortkey으로 분류되고 불려. 지금은 현재 sortkey를 표시하는 테이블 열을 표시하고 싶습니다 내가 모든 <td>
GET, 물론 테이블을 나누기
<td rowspan="<%= Testitem.count_by_sql "SELECT count(*) from testitems where sortkey=#{testitem.sortkey}" %>"><%=h testitem.sortkey %></td>
를 사용하여 깔끔한 것 생각 ROWSPAN입니다. 예상되는 결과 (_testitem.html.erb
내에서) 나는 주어진 sortkey
에 이미 <td rowspan="">
을 추가 한 사실을 "기억"할 수있는 방법이 있나요 다소
Group | Id | Description |
----------------------------------
1 | 1 | ... |
--------------------------
| 2 | ... |
--------------------------
| 16 | ... |
----------------------------------
2 | 3 | ... |
----------------------------------
3 | 4 | ... |
| 10 | ... |
| 11 | ... |
---------------------------------
과 같을 것이다?
나를 도와 주셔서 감사합니다.
메모 : 비즈니스 로직을 한 눈에 볼 수 있습니다. 보기에서 정렬 작업을해서는 안됩니다. 파인더 (': sort')에서 그렇게하는 것이 가장 이상적입니다. 그리고 당신은 확실히 당신의 관점에서 쿼리 ('count_by_sql')를하지 말아야합니다. –
글쎄, 내 생각에 이것은 RoR에 새로운 모습을 보여준 것 뿐이다. 사실 뷰 외부의 정렬 요소가 있었으며 뷰에서 상처를 입지 않을 것이라고 생각했습니다. (뷰에만 의존하는 뷰이므로) 'count_by_sql'이 제 첫 번째 시도였습니다. 특정 sortkey에 속한 testitem의 수를 찾는 데는 어떨까요? – jhwist
컨트롤러의 작업 (이 경우)은 데이터를 가져 와서보기에서 쉽게 사용할 수있는 양식으로 가져온 다음 인스턴스 변수에 할당하여보기에 제공하는 것입니다. – yfeldblum