2016-02-26 27 views
0

這來了,當我嘗試從一個數組在我端LOAD:改變SQL限制

Site Load (0.1ms) SELECT "sites".* FROM "sites" WHERE "sites"."user_id" = ? LIMIT 1 

我想從1更改限制,這樣我可以顯示我的ERB文件多的東西。 這就是我試圖在我的ERB文件中顯示它們的方法。

<% if @sites.is_a? Array %> 
    <% @sites.take(8).each do |site| %> 
    <!-- list to make things inline --> 
    <ul class="site_tab"> 
     <li> 
      <a href="/site/<%=site.id%>"><%=site.text%></a> 
     </li> 
     <li> 
      <a href="/delete_site?site_id=<%= site.id %>"> 
       <img class="delete_button" src="https://cdn4.iconfinder.com/data/icons/geomicons/32/672366-x-128.png"/> 
      </a> 
     </li> 
    </ul> 
    <% end %> 
<% elsif @sites.is_a? Site %> 
<% @sites.take(8).each do |site| %> 
    <!-- list to make things inline --> 
    <ul class="site_tab"> 
     <li> 
      <a href="/site/<%= site.id%>"><%= site.text %></a> 
     </li> 
     <li> 
      <a href="/delete_site?site_id=<%= site.id %>"> 
       <img class="delete_button" src="https://cdn4.iconfinder.com/data/icons/geomicons/32/672366-x-128.png"/> 
      </a> 
     </li> 
    </ul> 
    <%end%> 
<% else %> 
    <h2>No sites to display</h2> 
<% end %> 

如何更改限制? .take沒有工作和.limit沒有工作

+0

你用來在控制器中獲取數據的函數是什麼? – dieuhd

+0

theres new_site.erb處理該@dieuhd – dylan

回答

0

我猜你的問題是在你的控制器,而不是你的看法。你可能在這兩種情況下@sites

@sites = Site.find_by user_id: current_user.id 

@sites = current_user.sites.first 

注意將是一個單一的Site,而不是一個數組。這雖然產生的數組:

@sites = current_user.sites.limit(1) 

另外順便說一句你elsif @sites.is_a? Site,說@sites.take(8).each是沒有意義的,因爲它不是一個數組。

+0

但我不需要引用Site類? – dylan

+0

我最終使用一行涉及用戶ID和.flatten命令的代碼工作,但再次感謝您的幫助,即使這是一個非常晚的評論! – dylan