Как сделать данные модели доступными для всех методов контроллера? - PullRequest
1 голос
/ 20 февраля 2010

У меня есть корзина, которая содержит товары, в методе индекса моего контроллера я использую @cart = find_cart, чтобы найти товары моей корзины.

Я пытаюсь создать простую ссылку на корзину, которая содержит количество товаров в корзине в верхней части макета моего приложения, используя: <%= @cart.items.length %> Это будет выглядеть как корзина (2), если у вас есть два товара.

Не повторяя (то есть добавляя @cart = find_cart к каждому методу контроллера), как эффективно сделать эти данные доступными для всего моего приложения?

1 Ответ

3 голосов
/ 20 февраля 2010

Вы захотите использовать before_filter и поместить его в свой контроллер приложений:

class ApplicationController < ActionController::Base
    before_filter :find_cart_items


    private
    def find_cart_items
       @cart = find_cart
    end
end

Затем в любом из ваших контроллеров, где вы не не хотите найти корзину, просто используйте:

skip_before_filter :find_cart_items
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...