2017-06-25 6 views
0

私は初心者のRuby on railです。私はカートの小さなシステムを作成しようとしています。私はすでにstackoverfloxとWeb上のチュートリアルのおかげでかなり前進しています。 問題は私のカートを間違いなく空にすることができないため、アプリケーションからクッキーを削除するアクションを作成する必要がありますが、できません。ここでされているバスケットレール上のカートのルビーをクリアします

ビュー/カート/ index.html.erb

>   <h1>Votre panier</h1> 
>  <!DOCTYPE html> 
>  <html> 
>  <head> 
>  <title></title> 
>  </head> 
>  <body> 
>  
>  <% total = 0 %> 
>  
>  <table> 
>  <% @cart.each do |id, quantity| %> 
>  <% item = Item.find(id) %> 
>  <tr> 
>   <td class="images"><%= link_to image_tag(item.image_url, :size => "50x50"), item %></td> 
>   <td width="160"><%= item.produit %></td> 
>   <td width="160"><%= quantity %></td> 
>   <td width="160"><%= number_to_currency(item.prix, unit: "€") %></td> 
>   </tr> 
>   <% total += quantity * item.prix %> 
>  
>   <% end %> 
>  
>   <tr> 
>    <td colspan="4">Total :</td> 
>    <td><%= number_to_currency(total, unit: "€") %></td> 
>   </tr> 
>  
>  </table> 
> 
>  # Please, i want empty my cart ! 
>  <%= link_to 'Back', items_path %> 
>  
>  </body> 
>  </html> 

cart_controller.rb

class CartController < ApplicationController 
    def index 
    @cart = session[:cart] || {} 
    end 

    def add 
    id = params[:id] 
    cart = session[:cart] ||= {} 
    cart[id] = (cart[id] || 0) + 1 

    redirect_to :action => :index 

    end 


end 
を空にする可能性がないが、働く私のアプリの源であります

routes.rb

Rails.application.routes.draw do 

resources :items  

get 'cart/index' 

match ':controller/:action/:id', via: [:get, :post] 

root :to => "items#index" 

end 

答えて

0

次の操作を行うことにより、いつでもセッションハッシュから任意の「キー」を削除することができます:「戻る」である場合、あなたがそれをしたい場合は

session.delete(:cart) 

:あなたのケースでは

session.delete(key) 

をヒットしたら、そのルートパスのコントローラアクションに追加する必要があります。

+0

非常にありがとうございます、あなたはトップにあります! –

関連する問題