Ruby on rails 当我不使用';我不想这样。为什么?
Rails正在缓存我的一个控制器的索引方法。这是一个非常简单的应用程序,每个应用程序只有2个控制器和少量操作。奇怪的是,我的应用程序中根本没有任何缓存,至少没有显式缓存。如果我重新启动passenger,页面将被取消缓存。rails是否执行某种自动页面缓存Ruby on rails 当我不使用';我不想这样。为什么?,ruby-on-rails,caching,Ruby On Rails,Caching,Rails正在缓存我的一个控制器的索引方法。这是一个非常简单的应用程序,每个应用程序只有2个控制器和少量操作。奇怪的是,我的应用程序中根本没有任何缓存,至少没有显式缓存。如果我重新启动passenger,页面将被取消缓存。rails是否执行某种自动页面缓存 public目录中没有文件 页面正在返回200标题 我的视图中没有缓存块(如果有必要,我使用haml) 我没有定义操作、控制器或页面缓存 请求正在命中rails,并通过生产日志进行验证 我的production.rb中包含以下内容: co
目录中没有文件public
- 页面正在返回
标题200
- 我的视图中没有缓存块(如果有必要,我使用haml)
- 我没有定义操作、控制器或页面缓存
- 请求正在命中rails,并通过生产日志进行验证
config.cache\u classes=true
config.action\u controller.consumer\u all\u requests\u local=false
config.action\u controller.perform\u caching=true
config.action\u view.cache\u template\u load=true
问题是在我的视图中,表
中没有显示任何释放
,但如果我重新启动乘客,它会显示。我知道这失败的原因是因为我可以启动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
class ReleasesController < ApplicationController
def index
@releases = Release.ready
end
end
如果公用文件夹中没有文件,我认为您的视图不会被缓存 现在有一段时间,Rails缓存了源视图(就像模型一样),所以如果在生产环境中对这些视图进行更改,则必须重新启动passenger,以便在通过浏览器查看时这些更改生效 如果我的回答中还有什么不清楚的地方,请告诉我
编辑:这里有一个链接,指向我认为发生更改时的更改日志:如果公用文件夹中没有文件,我认为您的视图不会被缓存 现在有一段时间,Rails缓存了源视图(就像模型一样),所以如果在生产环境中对这些视图进行更改,则必须重新启动passenger,以便在通过浏览器查看时这些更改生效 如果我的回答中还有什么不清楚的地方,请告诉我
编辑:这里有一个链接,指向我认为发生更改时的更改日志:谢谢,但我不想在应用程序运行时修改视图。我将发布一些代码。我不确定,但这可能是使用
时间的一个更大问题。现在在命名的\u范围内。通常,当在命名的\u scope
中使用任何类型的“时间”时,您都希望在lambda中使用它,以便在调用时对其进行计算,而不是在应用程序启动时进行一次计算,然后再也不会进行计算。这里有一个到railscasts插曲的链接,因为我在上找不到任何相关的帖子:@ryeguy:很高兴我能帮上忙,而且你找到了答案。谢谢,但我不会在应用程序运行时修改视图。我将发布一些代码。我不确定,但这可能是使用时间的一个更大问题。现在在命名的\u范围内。通常,当在命名的\u scope
中使用任何类型的“时间”时,您都希望在lambda中使用它,以便在调用时对其进行计算,而不是在应用程序启动时进行一次计算,然后再也不会进行计算。这里有一个到railscasts插曲的链接,因为我在上找不到任何相关的帖子:@ryeguy:很高兴我能帮上忙,而且你找到了答案。干杯
%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