当我尝试从终端中的数组加载时出现:
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 :(得分: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
没有意义,因为它不是数组。