如何在ruby哈希选择中使用不同的条件

如何在ruby哈希选择中使用不同的条件,ruby,Ruby,我正在尝试选择哈希的子集。 假设我有一个这样做的方法,例如 def create_html (entities, low, high) entities .select{|k,v| v[:entity_count] < low and v[:community] == true} .sort_by{| k,v| v[:count]}.each do | k,v | ..... 我想处理各种情况: 假设下限为低,上限为高 计数低,计数高 我还想使用lte和gte。有没有

我正在尝试选择哈希的子集。 假设我有一个这样做的方法,例如

def create_html (entities, low, high)
  entities
    .select{|k,v| v[:entity_count] < low and v[:community] == true}
    .sort_by{| k,v| v[:count]}.each do | k,v |
.....
我想处理各种情况: 假设下限为低,上限为高

计数<低 计数>低,计数<高 计数>高
我还想使用lte和gte。有没有一种简单的方法来处理select语句中的所有组合?有更好的方法吗?

我不确定我是否理解您的意图。但是您可以使用一个块来提取条件

def create_html (entities)
  entities
    .select{|k,v| yield(v[:entity_count], v[:community]) }
    .sort_by{| k,v| v[:count]}.each do | k,v |
.....
然后你就可以得到基于这个域的所有条件

create_html(entities) { |count| count < low }
create_html(entities) { |count| count > low && count < high }
create_html(entities) { |count| count < low }

# Also with community == true
create_html(entities) { |count, community| count < low && community }

我不知道你想完成什么。您想在同一个select?中处理所有这些条件吗?我想创建不同类型的报告。在某些情况下,我希望项目低于低阈值。在其他情况下,任何大于低而小于高的值。这些报告是否来自SQL数据库?@SrdjanPejic I创建一个哈希。然后我选择一个子集并创建一个html报告。报告将包含-顶部实体、中间实体和底部实体。我想这就是我想要的。如果我想以相同的方式处理另一个条件,例如v[:community]==true,您能告诉我如何执行此操作吗。假设我想选择正确或错误。我可以使用2个收益率吗?你可以,但是你想要的是在同一个YELD中通过v[:community]。我会更新我的答案