2010-12-16 2 views
2

Я совершенно новый для Rails, поэтому, пожалуйста, будьте осторожны. :)Как получить временную метку Rails-кэша?

Существует, по-видимому, временная метка, которая привязана к кешу, которая добавляется в качестве запроса к JavaScript и CSS включает в Rails. Как я могу получить это значение программно? (Я хотел бы использовать его для других целей.)

ответ

1

Есть несколько способов сделать это. Если вы развертываете с Capistrano, вы можете установить ENV['RAILS_ASSET_ID'] номера версии, содержащегося в REVISION.

2

Это последняя измененная метка времени в файле. Rails вычисляет его в ActionView «s asset_tag_helper.rb следующим образом, но важная часть File.mtime(path).to_i

# Use the RAILS_ASSET_ID environment variable or the source's 
    # modification time as its cache-busting asset id. 
    def rails_asset_id(source) 
     if asset_id = ENV["RAILS_ASSET_ID"] 
     asset_id 
     else 
     if @@cache_asset_timestamps && (asset_id = @@asset_timestamps_cache[source]) 
      asset_id 
     else 
      path = File.join(ASSETS_DIR, source) 
      asset_id = File.exist?(path) ? File.mtime(path).to_i.to_s : '' 

      if @@cache_asset_timestamps 
      @@asset_timestamps_cache_guard.synchronize do 
       @@asset_timestamps_cache[source] = asset_id 
      end 
      end 

      asset_id 
     end 
     end 
    end 
+0

А, ок - я думаю, что я неверно истолковал смысл этой временной метки; У меня сложилось впечатление, что оно применяется к приложению в целом, а не к файлу, к которому он прикреплен. То, что я действительно хочу знать, - это время последнего запуска приложения Rails (или другого эквивалентного идентификатора), которое я хотел бы как-то использовать программно. Предоставляет ли Rails такое средство? За полчаса или около того, копаясь в Интернете, он не появляется. – 2010-12-16 18:49:42

0

Как я уже писал, это легко, если youj развертывается с Capistrano, поскольку файл REVISION содержит уникальный идентификатор хэша, но вы также можете создать свой собственный идентификатор версии и назначить его RAILS_ASSET_ID.

Смежные вопросы