2014-11-05 50 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'? – 2014-11-05 14:15:19

回答

1

我相信你想做某事,如:

<% 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 2014-11-05 14:23:14

+0

@ mav191 - 這應該會顯示所有的字母,除非你用'@ animes'做了一些棘手的事情。 – BroiSatse 2014-11-05 14:24:27

+1

它沒有顯示那個變空了的人?如果它變成空的,它應該仍然顯示字母和錯誤輸出 – mav191 2014-11-05 14:31:38