Кеширование - PullRequest
1 голос
/ 13 мая 2011

Я собрал приложение, используя плагин inherited_resource, и он готов к работе.

Теперь я ищу способы реализовать кэширование для того же приложения. Поскольку у меня есть некоторые фрагменты страницы, которые зависят от current_user, я собираюсь использовать механизм кэширования фрагментов.

Может ли кто-нибудь предоставить мне указатель или ресурс, который помогает в реализации фрагментного кеширования для представлений и контроллеров на основе attributeit_resource?

Спасибо, Аджай Кумар Г

1 Ответ

0 голосов
/ 29 мая 2011

Я не использую наследуемые_ресурсы, но, насколько я понимаю, это всего лишь ярлык для контроллеров. Ваши представления должны быть просто стандартными, в этом случае вы можете использовать фрагментное кэширование, как описано в Руководстве по Rails по адресу http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching

Вы пробовали это? Если это не сработает, покажите нам, как выглядят ваши взгляды.


edit : ответ на комментарий.

Ладно, так что, в общем, если вы используете кеширование фрагментов, не имеет смысла не вызывать действие контроллера, потому что у вас не будут установлены переменные, а если нет переменных, то почему вы не используете кеширование страниц?

Чтобы предотвратить запуск запросов, ActiveRecord 3.0 с arel - ваш друг. Например, если вы добавите @posts = Post.where (: опубликовано => true) в свое действие, то оно не будет вызываться до тех пор, пока вы не вызовете @ posts.each в представлении, поэтому, если вы поместите это в блок кеша, оно будет никогда не звонить. Я не уверен, что по умолчанию наследуется от методаоризмы, но, учитывая, что он написан Хосе Валимом, я думаю, что он будет использовать эту функцию ActiveRecord по умолчанию, если нет, то его легко настроить. Вы можете проверить это, включив кеширование для своей среды разработки и просматривая журналы, чтобы увидеть, какие запросы запускаются.

...