在我的.erb
文件中,我有一个简单的each
循环:
<%= @user.settings.each do |s| %>
..
<% end %>
如何检查当前是否正在进行第一次迭代?我知道我可以设置i = 0 ... i ++
,但这只会使.erb
代码变得混乱。有什么建议吗?
在我的.erb
文件中,我有一个简单的each
循环:
<%= @user.settings.each do |s| %>
..
<% end %>
如何检查当前是否正在进行第一次迭代?我知道我可以设置i = 0 ... i ++
,但这只会使.erb
代码变得混乱。有什么建议吗?
这取决于你的数组大小。如果它非常大(几百个或更多),那么你应该.shift
出数组的第一个元素,对其进行处理,然后显示整个集合:
<% user_settings = @user_settings %>
<% first_setting = user_settings.shift %>
# do you stuff with the first element
<%= user_settings.each do |s| %>
# ...
或者您可以使用.each_with_index
方法:
<%= @user.settings.each_with_index do |s, i| %>
<% if i == 0 %>
# first element
<% end %>
# ...
<% end %>
<%= @user.settings.each do |s| %>
<% if @user.settings.first == s %>
<% # Your desired stuff %>
<% end %>
<% end %>