2010-06-07 2 views
0

디스플레이 용으로 내 테이블의 첫 번째 레코드 만 가져 오려고합니다. 사용자가 여러 이미지를 업로드하고 게시물에 첨부 할 수있는 사이트를 만들고 있지만 각 게시물의 첫 번째 이미지보기 만 표시하려고합니다.컨트롤러를 변경하지 않고보기를 통해 테이블의 첫 번째 레코드 만 가져 오는 중입니까?

더 명확히하기 위해 posts belong_to projects. 따라서 프로젝트 쇼 페이지에 여러 게시물이 표시됩니다. 이보기에서는 각 게시물의 첫 번째 이미지 만 표시하려고합니다. 컨트롤러에 영향을주지 않고보기에서이를 수행 할 수있는 방법이 있습니까 (나중에 사용자가 라이트 박스를 추가하여 모든 사진을 탐색 할 수있게하려는 경우). 여기 내 /views/posts/_post.html.erb 코드 :

<% div_for post do %> 

    <% post.photos.each do | photo | %> 

     <%= image_tag(photo.data.url(:large), :alt => '') %> 
     <%= photo.description %> 
    <% end unless post.photos.first.new_record? rescue nil %> 

     <%= link_to h(post.link_title), post.link %> 
     <%= h(post.description) %> 

     <%= link_to 'Manage this post', edit_post_path(post) %> 

<% end %> 

업데이트 : 각 게시물에 여러 장의 사진을 첨부하는 사진 모델을 사용하고 여기에 클립을 사용하고 .

답변

0

중 하나가 작동해야합니까?

post.photos.find(:first) 

or 

post.photos.first 

편집

: 나는 수정 된 코드는 다음과 같이 것 같아?

<% div_for post do %> 
    <% photo = post.photos.first %> 

    <%= image_tag(photo.data.url(:large), :alt => '') %> 
    <%= photo.description %> 

    <%= link_to h(post.link_title), post.link %> 
    <%= h(post.description) %> 

    <%= link_to 'Manage this post', edit_post_path(post) %> 
<% end %> 
+0

내가 계속 작업해야하는 데 어려움을 겪고있는 '... 사진 | ...'을 유지해야합니까? 루비와 레일을 처음 접했을 때 전체 구문을 포함 할 수 있습니까? – bgadoci

+0

FYI, 내가'<% post.photos.first do | 사진 | %>'이미지가 전혀 표시되지 않습니다. 사진을 사진 테이블에 추가하고 사진 모델을 게시하기 위해 사진을 추가하고 사진 (또는보기)을위한 컨트롤러가없는 것을 편집하십시오. – bgadoci

+0

먼저 사진이 배열을 반환하는 단일 객체를 반환하므로 do 블록이 필요하지 않으므로 업데이트됩니다 – house9

관련 문제