2014-11-05 1 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