У меня есть индексное действие контроллера, которое возвращает вывод json.
render :json => my_array.to_json
Какое кэширование делают я должен использовать здесь. Действительно 'разбивает на страницы кэширование', имеют смысл для этого.
Или сделайте я должен сделать действие, кэширующееся как ниже
caches_action :index
Либо кэширование действий, либо кэширование страниц будет работать хорошо; кэширование страниц имеет преимущество в том, что никогда не вызывается стек Rails, но это зависит от того, нужно ли вам контролировать, кто получает доступ к этой Json-ленте.
Я большой поклонник использования кэширования страниц, если вы можете избежать этого - можно получить большую экономию системных ресурсов. :)
EDIT: Пример кэширования страниц, если возникла путаница:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
Если я ничего не перепутал, это все, что вам нужно сделать.
К JSON следует учитывать те же соображения, что и к любому другому выводу. Если вам нужно проверить доступ к данным для пользователя, то кеширование действий - это выход, в противном случае кеширование страниц должно быть нормальным.
Если данные изменяются из-за логики вашего приложения, то обе формы кеширования проблематичны, и вам лучше использовать что-нибудь другое.