Rails кеширует индексный метод одного из моих контроллеров. Это очень простое приложение, в котором всего 2 контроллера и несколько действий каждый. Странно то, что в моем приложении вообще нет кэширования, по крайней мере, явно. Страницы не кэшируются, если я перезапущу пассажира. Использует ли rails автоматическое кэширование страниц?
- В каталоге
public
нет файлов
- Страница возвращает заголовок
200
- У меня нет блоков кэширования в моих представлениях (я использую haml, если это имеет значение)
- У меня не определено действие, контроллер или кэширование страниц
- Запрос - это удар по рельсам, подтвержденный журналом производства
У меня в производственной программе есть следующее:
config.cache_classes = true<br>
config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.action_view.cache_template_loading = true
Проблема в том, что он не показывает Releases
в table
, на мой взгляд, но будет, если я перезапущу пассажира. Причина, по которой я знаю, что это ошибка, заключается в том, что я могу запустить консоль Rails и выполнить Release.ready
, то есть именованную область видимости, отображаемую в представлении, и я действительно получаю некоторые результаты обратно.
Вот соответствующий код:
Модели / release.rb
class Release < ActiveRecord::Base
default_scope :order => 'created_at DESC'
named_scope :ready, :conditions => ['show_on <= ? AND is_deleted = ?', Time.now, false]
end
Контроллеры / releases_controller.rb
class ReleasesController < ApplicationController
def index
@releases = Release.ready
end
end
Вид / выпуски / index.html.haml
%table{:border => 1}
%tr
%th Date
%th Title
%th Artist
%th Song
- @releases.each do |release|
- @release = release
%tr[release]
%td
= link_to_remote "delete", :url => release, :method => :delete , :confirm => 'Remove?'
= release.created_at.to_date.to_s(:long_ordinal)
%td= link_to release.title, release.url
%td= in_place_editor_field :release, :artist
%td= in_place_editor_field :release, :song