0

我见过的每个 rails etag 示例都非常简单,将 fresh_when 方法作为控制器中的最后一行调用。我试图了解fresh_when 方法如何适用于具有资源密集型方法调用的控制器,如果页面仍然新鲜,我不想在请求中调用这些方法。例如,

class NotesController < ApplicationController
  etag { current_user.try :id }

  def show
    @note = Note.find(params[:id])
    @note.do_some_expenisve_data_manipulation
    fresh_when(@note)
  end
end

如果自该用户上次更新后该便笺尚未更新,是否会调用 @note.do_some_expensive_data_manipulation?如果我把那条线放在fresh_when下面,它会被调用吗?谢谢!

4

1 回答 1

1

我觉得使用陈旧?对我来说,fresh_when 更容易理解。这是一个例子。

if stale?(etag: @note, last_modified: @note.updated_at)
  respond_to do |format|
    format.html {
      // do expensive work here
    }
  end
end
于 2013-05-21T23:51:31.707 回答