2011-05-09 8 views
0

나는 만들 날짜가 Message 모델입니다. 어떻게하면 가로로 날짜를 표시하고 다른 속성을 세로로 표시 할 수 있도록 만들 수 있습니까?레일스 3의 HTML 데이터 테이블

Date   1/1/11   2/1/11   3/1/11 
Message  message1   message2   message3 
Attr 1  attr1 val  ....    ... 
Attr 2  attr2 val  ....    ...... 

나는 레일에서 사용할 수있는 플러그인/보석 있는가, 아니면 내가 그렇게 할 몇 가지 자바 스크립트 라이브러리를 사용해야합니다 :

은 그래서이 같은 것?

<table> 
    <% @turned_messages.each do |k, values| %> 
    <tr> 
     <td><%= k %></td> 
     <% values.each do |v| %> 
     <td><%= v %></td> 
     <% end %> 
    </tr> 
    <% end %> 
</table> 
+0

그냥 HTML 레이아웃에 관한 것입니다 : 컨트롤러에 – fl00r

답변

4

데이터 뷰에서 다음
@messages = Message.select(:created_at, :message, :attr1, :attr2 ...) 
@turned_messages = @messages.all.inject({}){ |h, c| c.attributes.each{ |k,v| h[k] ||= []; h[k] << v }; h } 

을 준비합니다. 여기에 Javascript가 필요 없으며 여기에 보석이 필요하지 않습니다.
+0

모든 속성을 한 줄로 표시합니다. 출력은 다음과 같습니다. attr1 attr1value attr2 attr2value. 내가 여러 개 있다면, 모든 것을 1 행에 넣을뿐입니다. @messages를 얻는 방법을 수정했습니다. 이것은 내가 가지고있는 것입니다 : @messages = Message.find_all_by_user_id (current_user.id) 그리고 나는 주사의 fron에서 모두 제거했습니다. 그게 내 결과가 엉망이 될 수 있을까? – ed1t

+0

실제로 다음과 같이 표시됩니다. 메시지 val1 val2 Attr1 attrval1 attrval2 Attr2 attrval2 attrval3 .... 모두 같은 줄에 – ed1t

+0

약간 대답했습니다. :) – fl00r

관련 문제