在进行像块:得到红宝石块特定元素,Rails应用程序
<% @user.favoured_user.each do |user| %>
<li><%= user.name %></li>
<% end %>
随着favoured_user方法返回5个用户的限制,我将如何处理该块,这样即使只有3用户可用,我仍然可以返回5个元素?
我猜想一个帮手会进来玩,也许'第一,第二,第三等'数组方法,但我想不出如何编写它。
任何帮助?
在进行像块:得到红宝石块特定元素,Rails应用程序
<% @user.favoured_user.each do |user| %>
<li><%= user.name %></li>
<% end %>
随着favoured_user方法返回5个用户的限制,我将如何处理该块,这样即使只有3用户可用,我仍然可以返回5个元素?
我猜想一个帮手会进来玩,也许'第一,第二,第三等'数组方法,但我想不出如何编写它。
任何帮助?
你可以试试这个,
<% 5.times do |i| %> <li> <%= @user.favoured_user[i].try(:name) %> </li> <% end %>
您可以使用in_groups_of
像:
<% @user.favoured_user.in_groups_of(5).each do |favored_user| %>
<% favored_user.each do |user| %>
<li><%= user.try(:name) %></li>
<% end %>
<% end %>
第3个用户会通过,而最后两个参赛作品将是零
'in_groups_of'产生一个数组数组,所以在你的例子中'user'不会是一个数组? – 2012-02-24 19:22:31
你的权利,上面做了小修改。 – 2012-02-24 20:13:56
s /你/你/ :)你也可以在这种情况下使用'in_groups_of(5).first.each',因为'favoured_user'指定最多返回5个。 – 2012-02-24 20:27:31
只显示五个用户中的一个,然后显示4个空白li元素? – Darcbar 2012-02-24 19:53:43
它应该按原样运行,是您的@ user.favoured_user生成一个5的数组? – 2012-02-24 20:07:33
是的,它正在生成数组作为我的第一篇文章中的方法正常工作,所做的更改仍然只返回第一个用户。 – Darcbar 2012-02-24 20:15:02