Как кешировать рендер: json - PullRequest
9 голосов
/ 12 мая 2010

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

render :json => my_array.to_json

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

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

caches_action :index

Ответы [ 2 ]

3 голосов
/ 12 мая 2010

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

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


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

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

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

2 голосов
/ 12 мая 2010

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

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

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