如何在内联循环中包含 'next if' 条件
How to include a 'next if' condition in an inline loop
我想在此循环中包含 next if
:
= select_tag :type, options_for_select(Products.statuses.keys.map{ |product_type| [I18n.t("product.#{product_type}"), product_type] }, params[:type])
所以我想要这样的东西:
Products.statuses.keys.map{ |product_type| next if product_type == "clothes", [I18n.t("product.#{product_type}"), product_type] }
有了一个列表,您总是可以根据条件 select
or reject
个元素:
Products.statuses
.keys
.reject { |product_type| product_type == "clothes" } # <= won't be in list
.map { |product_type| [I18n.t("product.#{product_type}"), product_type] }
你几乎是正确的:Ruby中的表达式分隔符是分号;
,而不是逗号,
,所以应该是
Products.statuses.keys.map{ |product_type| next if product_type == "clothes"; [I18n.t("product.#{product_type}"), product_type] }
# ↑↑↑
你也可以反过来这样写:
Products.statuses.keys.map{ |product_type| next [I18n.t("product.#{product_type}"), product_type] unless product_type == "clothes" }
我想在此循环中包含 next if
:
= select_tag :type, options_for_select(Products.statuses.keys.map{ |product_type| [I18n.t("product.#{product_type}"), product_type] }, params[:type])
所以我想要这样的东西:
Products.statuses.keys.map{ |product_type| next if product_type == "clothes", [I18n.t("product.#{product_type}"), product_type] }
有了一个列表,您总是可以根据条件 select
or reject
个元素:
Products.statuses
.keys
.reject { |product_type| product_type == "clothes" } # <= won't be in list
.map { |product_type| [I18n.t("product.#{product_type}"), product_type] }
你几乎是正确的:Ruby中的表达式分隔符是分号;
,而不是逗号,
,所以应该是
Products.statuses.keys.map{ |product_type| next if product_type == "clothes"; [I18n.t("product.#{product_type}"), product_type] }
# ↑↑↑
你也可以反过来这样写:
Products.statuses.keys.map{ |product_type| next [I18n.t("product.#{product_type}"), product_type] unless product_type == "clothes" }