2010-02-20 5 views
1

J'ai un panier qui contient des articles, dans ma méthode d'index de contrôleur j'utilise @cart = find_cart pour trouver les articles de mon panier. J'essaie de faire un lien panier simple qui contient la quantité d'articles dans le panier en haut de ma mise en page de l'application en utilisant: <%= @cart.items.length %> Il ressemblera à panier (2), si vous avez deux articles. Sans être répétitif (c'est-à-dire en ajoutant @cart = find_cart à chaque méthode de contrôleur unique), comment puis-je rendre ces données disponibles efficacement pour l'ensemble de mon application?Comment rendre les données du modèle accessibles à travers toutes les méthodes du contrôleur efficacement?

Répondre

3

Vous voulez utiliser un before_filter et placez-le dans votre contrôleur d'application:

class ApplicationController < ActionController::Base 
    before_filter :find_cart_items 


    private 
    def find_cart_items 
     @cart = find_cart 
    end 
end 

Ensuite, dans l'un de vos contrôleurs où vous ne pas voulez trouver le panier, il suffit d'utiliser:

skip_before_filter :find_cart_items 
+0

évident! J'aurais dû y penser. –

Questions connexes