我可能会接近这一切(我对Ruby很新),但有人可以告诉我如何检查对象中的某些值吗?
我想检查product.taxons
中的任何分类单元是否在其machine_names中包含任何'rush_delivery'或'customization_possible'。
我的模板代码:
<div class="expanded">
<% product.taxons.each do |t| %>
<% if t.machine_name == 'rush_delivery' %>
<p class="icon icon-urgent">
<span class="tooltip"><%= Spree.t('usp.rush_delivery') %></span>
</p>
<% end %>
<% if t.machine_name == 'customization_possible' %>
<p class="icon icon-customize">
<span class="tooltip"><%= Spree.t('usp.customization_possible') %></span>
</p>
<% end %>
<% end %>
</div>
目标是在父div上添加一个隐藏类,如果它们不存在。
答案 0 :(得分:1)
所以你的条件会是这样的:
product.taxons.any? { |taxon|
['rush_delivery', 'customization_possible'].include?(taxon.machine_name)
}
我认为这种逻辑并不属于一种观点。有不同的方法来清理它,这取决于您的需求选择方式:您只能在控制器中加载具有匹配的machine_way的产品。您可能希望使用封装逻辑的presenter对象,或者将其更多地封装到帮助程序中。