Rails开发中的缓存与数据库迁移技术
1. Rails缓存技术
1.1 HTTP缓存方法
在Rails中,当处理请求时,可以调用 stale? 或 fresh_when 方法,Rails会为你生成必要的HTTP头信息。这两个方法都接受 :last_modified 时间戳(UTC格式)和 :etag 参数。 etag 可以是响应依赖的对象或对象数组,这些对象需要实现 cache_key 或 to_param 方法,ActiveRecord会自动处理这些。
stale? 通常在涉及自定义渲染的 if 语句中使用,示例代码如下:
def show
@article = Article.find(params[:id])
if stale?(:etag=>@article, :last_modified=>@article.created_at.utc)
# ...
end
end
fresh_when 在使用默认渲染时更方便,它会直接返回304 Not Modified响应,示例代码如下:
def show
fresh_when(:etag=>@art
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



