2014-11-05 4 views
0

У меня возникли проблемы с попыткой выяснить, когда я дошел до конца моего запроса. Итак, что я хочу сделать, это перечислить все записи в моей базе данных, которые начинаются с буквы A, которую я получил, однако я хочу вывести сообщение, если запрос окажется пустым. Когда я пытаюсь, я получаю кучу своих пользовательских сообщений, даже если запрос не получился пустым. Есть ли способ узнать, достиг ли я EOF в рубине на рельсах?Ruby on Rails как получить последний запрос?

Образец

<div id = "content-A"> 
       <p>A</p> 
       <% @animes.each do |anime| %> 
        <% if anime.aname.starts_with?('A') %> 
         <%= link_to anime.aname, {:action => 'list'} %> 
        <% else %> 
         <p>No anime listed in this Category :(</p> 
        <%end%> 
       <%end %> 
      </div> 
+0

Каков ваш запрос, который генерирует '@ animes'? –

ответ

1

Я считаю, что вы хотите STH нравится:

<% animes_group = @animes.group_by {|anime| anime.aname.to_s[0].upcase} 
    ('A'..'Z').each do |letter| %> 
    <div id="content-<%= letter %>"> 
    <p><%= letter %></p> 
    <% if animes = animes_group[letter] %> 
    <% animes.each do |anime| %> 
     <%= link_to anime.aname, {:action => 'list'} %> 
    <% end %> 
    <% else %> 
    <p>No anime listed in this Category :(</p> 
    <%end%> 
<% end %> 

Вы должны рассмотреть вопрос о переносе некоторых из логики контроллера здесь, однако, что должен быть перемещен, зависит от многих факторов, таких как независимо от того, используются ли @animes где-либо еще и т. д.

+0

это работает, но как вы это делаете для всех писем? – mav191

+0

@ mav191 - Это должно отображать все буквы уже, если вы не делаете какой-то сложный бизнес с '@ animes'. – BroiSatse

+1

Это не отображение того, что оказалось пустым? Если он окажется пустым, он все равно должен отображать букву и вывод ошибки – mav191

Смежные вопросы