Bonjour,

Voila je rencontre un petit problème avec mon code.

je suis entrain de gerer les commandes effectuées par les clients et ma table commande est reliée au model panier et le model panier est relié au model produit ce qui a donné la table d'association Line_items qui comprend cart_id , produit_id ,et quantité mais au niveau du panier en voulant modifier et supprimer un element du panier j'ai rencontré un petit blocage plus precisement dans le view Order où à la fin j'ai affiché la liste des éléments dans le panier comme suit

<%= form_with(model: order,:remote => true)  do |f| %>
<div class="content">
<div class="container-fluid">
  <div class="row">
      <div class="col-md-12">
          <div class="card">
      <div class="header">
          <h4 class="title"> Editer Bon de Commande</h4>
      </div>

      <div class="content">
          <div class="row">
            <!-- Reference de la commande -->
              <div class="col-md-5">
                  <div class="form-group">
                      <label><%= f.label :ref,"Reference Commande "%></label>
                      <%= f.text_field :ref, :value => "ABC-123-NY#{@order.ids.last}",:readonly => true,class: ' form-control' %>
                  </div>
              </div>
              <!-- Liste deroulante Fournisseur -->
              <div class="col-md-5">
                  <div class="form-group">
                      <label><%= f.label :fournisseur_id,"Fournisseur"%></label>
                      <%=f.collection_select :fournisseur_id,Fournisseur.all,
                    :id,:nomfrs,{required: true},id:"listfrs",class: 'form-control'%>
                  </div>
              </div>
              <!-- Bouton Valider -->
              <div class="col-md-2">
                  <div class="form-group">
                       <%= f.submit 'Modifier',:name => "valid",:class => 'btn btn-info btn-fill pull right'%>
                  </div>
              </div>

             </div>
         </div>
       </div>

       <div class="card">
      <div class="content">
          <div class="row">
            <!-- Date de la Commande -->
              <div class="col-md-5">
                  <div class="form-group">
                      <label><%= f.label :date_com,"Date"%></label>
                      <%= f.date_select :date_com, label: false, placeholder: "Sélectionnez la date et l'heure",class: 'form-control'%>
                  </div>
              </div>
             </div>
         </div>
       </div>

      </div>
    </div>
</div>
</div>

    <div class="col" id="cart">
              <h3>Details de la commande</h3>
    <table class="table table-bordered">
    <tr align="center" class="h4">
    <td>Designation</td>
    <td>Quantite</td>
    <td>Prix</td>
    </tr>

    <% order.cart.line_items.each do |item| %>
    <tr align="center">

        <td><%= f.text_field :produit_id,:value => item.produit.titre,:readonly => true,class: 'form-control'%></td>
        <td><%= f.text_field :qte, :value=>item.qte ,class: 'form-control' %></td>
        <td><%= number_to_currency(item.produit.prix, unit: "F",separator:",",format:"%n %u")%></td>
    </tr>

<% end %>
   </table>
      </div>

    <% end %>

et mon controller order

def update
    respond_to do |format|
      @order.cart.line_items.each do |item|
        item.qte = params[:qte]
      end
      format.html { redirect_to @order, notice: 'Order was successfully updated.' }
    end
  end

et là j'aurai les champs textfield avec comme valeur par defaut ce que le client avait commandé lui permettant la modification mais le probléme en est que les attibuts produit_id et qte n'appartiennent pas au model order mais plus tÔt au model line_items
ce que je veux c'est quand j'appui sur le bouton modifier qu'il aille dans le controller update et parcourir tous les elements du panier relié à la commande et met a jour les données du formulaire soumises

Par contre si je soumet le formulaire j'obtiens une erreur de non permission = unpermitted : :produit_id, :qte
et en utilisant la methode accepted_nested_attributs j'aboutis toujours pas au résultat

Aucune réponse