更改SQL限制

时间:2016-02-26 03:22:14

标签: ruby-on-rails ruby

当我尝试从终端中的数组加载时出现:

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没有工作

1 个答案:

答案 0 :(得分:0)

我猜测问题出在您的控制器中,而不是您的视图。你可能有像

这样的东西
@sites = Site.find_by user_id: current_user.id

@sites = current_user.sites.first

请注意,在这两种情况下,@sites都是单个Site,而不是数组。这会产生一个数组:

@sites = current_user.sites.limit(1)

同样顺便提一下elsif @sites.is_a? Site,说@sites.take(8).each没有意义,因为它不是数组。