Выборка только первой записи в таблице (через представление) без смены контроллера? - PullRequest
0 голосов
/ 07 июня 2010

Я пытаюсь получить только первую запись в моей таблице для отображения. Я создаю сайт, на котором пользователь может загружать несколько изображений и прикреплять их к сообщению, но я хочу отображать только первое изображение для каждого сообщения.

Для уточнения 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 %>

UPDATE: Я использую фотомодель, чтобы прикрепить несколько фотографий к каждому сообщению и использую скрепку здесь.

1 Ответ

0 голосов
/ 07 июня 2010

любой из них должен работать?

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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...