2017-05-22 5 views
0

Je construis un panier et j'ai pas un problème avec la forme suivante:Rails: formulaire n'apparaîtra

<div id="produits-column-container"> 
<% if @produits %> 
    <% @produits.in_groups_of(4, false).each do |g| %> 
    <% g.each do |produit| %> 
    <div id="produits-row-container"> 
     <div id="fiche-produit-container"> 
     <%= form_for order_item, remote: true do |f| %> 
      <div id="produit-img"> 
      <%= link_to produits_show_path do %> 
       <%= image_tag produit.photo %> 
      <% end %> 
      </div> 
      <div id="produit-nom"> 
      <%= produit.nom %> 
      </div> 
      <div id="produit-prix"> 
      <%= number_to_currency(produit.prix, unit: '€', format: "%n%u") %> 
      </div> 
      <div id="produit-au-panier"> 
      <%= image_tag('icon/icon-panier') %> 
      <%= f.submit 'Ajouter au panier' %> 
      </div> 
     <% end %> 
     </div> 
    </div> 
    <% end %> 
    <% end %> 
<% end %> 

Quand je lance le serveur, la forme ne apparaissent dans la vue même si Rails ne pose aucun problème. Je ne comprends pas pourquoi, une idée?

EDIT

voici mon produits_controller.rb:

class ProduitsController < ApplicationController 

    def index 
    @produits = Produit.all 
    @order_item = current_order.order_items.new 

    if @order_item.save 
     format.html { redirect_to @order_item, notice: 'Le produit a été ajouté au panier !' } 
     format.json { render json: @order_item, status: :created, location: @order_item } 
     format.js 
    else 
     format.html { render action: "create" } 
     format.json { render @order_item.errors, status: unprocessable_entity } 
     format.js 
    end 
    end 

    def show 
    @produit = Produit.find(params[:id]) 
    end 

end 
+0

ne manquez-vous pas le '@' dans '<% = form_for order_item, distant: true do | f | %> '->' @ order_item'? – fanta

Répondre

1

Retirez la ligne avec if @produits.

Avec cette ligne en place, le formulaire ne s'affichera pas lorsque @produits est vide.

+0

la chose est, j'ai des produits ajoutés par une session d'administration alors ici les produits ne sont pas vides ... J'ai essayé votre solution et maintenant je reçois cette erreur: 'méthode indéfinie' each 'pour nil: NilClass' – justinedps26

+0

Ensuite, vous avez juste répondu au problème - '@ produits' est' Nil'. Vérifiez votre contrôleur pour voir où '@ produits' est créé et rempli –

+0

J'ai modifié la question avec' produits_controller.rb' – justinedps26