Ruby on rails 写@instances.count的更好方法>;0

Ruby on rails 写@instances.count的更好方法>;0,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有以下代码: <% if @states.count > 0 %> # @states is an active record collection 0%>#@states是一个活动记录集合 我只是觉得应该有更好的方式来写这篇文章 我正在寻找类似于: <% if @states.not_empty? %> 我意识到这是一个微小的变化,但这将是一个受欢迎的清理。怎么样 <% unless @states.empty? %> 您可能想要A

我有以下代码:

<% if  @states.count > 0 %>  # @states is an active record collection
0%>#@states是一个活动记录集合
我只是觉得应该有更好的方式来写这篇文章

我正在寻找类似于:

<% if  @states.not_empty? %>

我意识到这是一个微小的变化,但这将是一个受欢迎的清理。

怎么样

<% unless @states.empty? %>

您可能想要ActiveRecord的
任何?


如果@states至少有一个结果,请在此处执行操作


为什么
有?
any?
循环遍历可枚举集合,如果块中传递的谓词对集合中的任何元素返回true,则返回true。OP希望将集合作为一个整体来测试
数组
(或者具体地说,
可枚举
),是的,但是OP使用ERb表明他可能正在使用ActiveRecord集合
ActiveRecord::Relation
any?
不需要块,它只是检查集合是否为空。(虽然,
Array
的版本也不需要块。)有一个带有块的版本可以扫描列表中的匹配项,但这是可选的。
any?
在没有块的ActiveRecord集合上简直就是
!空?
-是@Andy H建议的正面版本
<% if @states.any? %>
    Do stuff here if @states has at least one result
<% end %>
if @states.exists?