2017-10-08 3 views
0

Je les énumérations suivantes:itérer sur les objets du modèle Rails5 et rendre les objets avec une ENUM spécifique valeur clé

enum productgroup: { regular_product: 0, plaque_type: 1, plaque_size: 2, plaque_proof: 3} 

et la boucle de produit suivant:

<% @products.each do |product| %> 
    <%= render 'product_row', product: product, order_item: @order_item %> 
<% end %> 

J'ai des dizaines de produits à chaque appartenant à un groupe de produits enum spécifique. Je voudrais que ma boucle de produit ne rende que les produits d'un type de groupe enum spécifique.

Répondre

1

Vous pouvez filtrer par énumération à l'aide de la méthode where. Si l'on suppose la @products est une collection ActiveRecord, alors vous pourriez quelque chose comme:

<% @products.where(productgroup: :regular_product).each do |product| %> 
    <%= render 'product_row', product: product, order_item: @order_item %> 
<% end %> 

Je l'ai utilisé :regular_product comme exemple, mais vous pouvez le remplacer par une variable ou même un paramètre choisi par l'utilisateur params[:productgroup].