Как кешировать рендер:json

У меня есть действие индекса контроллера, который возвращает вывод JSON.

render :json => my_array.to_json

Какой тип кэширования я должен использовать здесь. Имеет ли смысл "кэширование страниц" для этого.

Или я должен делать кэширование действий, как показано ниже

caches_action :index

2 ответа

Решение

Либо кэширование действий, либо кэширование страниц будет работать нормально; Кэширование страниц имеет преимущество в том, что никогда не вызывает стек Rails, но это зависит от того, нужно ли вам контролировать, кто обращается к этому каналу Json.

Я большой поклонник использования кэширования страниц, если вы можете сойти с рук - есть большая экономия на системных ресурсах.:)


РЕДАКТИРОВАТЬ: Пример кэширования страницы, если возникла путаница:

class SomeController < ApplicationController
  caches_page :index
  def index
    render :json => my_array.to_json
  end
end

Если я что-то не так понял, это должно быть все, что вам нужно сделать.

Те же соображения должны применяться к JSON, как и любой другой вывод. Если вам нужно проверить доступ к данным для пользователя, то кэширование действий - это путь, иначе кэширование страниц должно быть в порядке.

Если данные изменяются из-за логики в вашем приложении, то обе формы кэширования проблематичны, и вам лучше использовать что-то другое.

Другие вопросы по тегам