在 Rails 中渲染缓存页面
Posted
技术标签:
【中文标题】在 Rails 中渲染缓存页面【英文标题】:Render a cached page in Rails 【发布时间】:2015-10-10 19:46:33 【问题描述】:我有一个简单的 Rails 模型,它只包含一个名为“缓存”的字段:
class CreateCache < ActiveRecord::Migration
def change
create_table :caches do |t|
t.belongs_to :statistic
t.string :cache
t.timestamps null: false
end
end
end
模型本身:
class Cache < ActiveRecord::Base
belongs_to :statistic
end
“缓存”字段由 html 文档组成,当用户单击视图中的链接时,我需要找到一种方法在单独的窗口中呈现它(没有来自 Rails 的任何布局)。
有什么办法吗?
【问题讨论】:
好吧,要禁用布局,您可以在控制器操作中使用render layout: false
。由于您想渲染内容,您可能需要查看render body: "raw_data"
。请参阅guides.rubyonrails.org/layouts_and_rendering.html 了解更多信息
但是,如果您正在做的是缓存某些资源的渲染视图,那么还有更好的方法,因为在数据库中保存/检索 HTML 文档非常慢。也没有必要重新发明***guides.rubyonrails.org/caching_with_rails.html
【参考方案1】:
在您的 CacheController
中,您可以执行以下操作:
def show
@cache_object = Cache.find(params[:id])
render html: @cache_object.cache.html_safe, layout: false
end
更多信息:http://guides.rubyonrails.org/layouts_and_rendering.html
【讨论】:
@DayvanCowboy 欢迎 :) 你能接受它是有效的答案吗,对其他人也有用。 @DayvanCowboy 只需点击答案投票下方的勾号即可接受答案。以上是关于在 Rails 中渲染缓存页面的主要内容,如果未能解决你的问题,请参考以下文章