software rails official como actualizar ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 rake

ruby on rails - official - ¿Cuál es la diferencia entre Rails.cache.clear y rake tmp: cache: clear?



ruby on rails software (1)

¿Son los dos comandos equivalentes? Si no, ¿cuál es la diferencia?


La tarea de rake solo borra los archivos que están almacenados en el sistema de archivos en "#{Rails.root}/tmp/cache" . Aquí está el código para esa tarea.

namespace :cache do # desc "Clears all files and directories in tmp/cache" task :clear do FileUtils.rm_rf(Dir[''tmp/cache/[^.]*'']) end end

https://github.com/rails/rails/blob/ef5d85709d346e55827e88f53430a2cbe1e5fb9e/railties/lib/rails/tasks/tmp.rake#L25-L30

Rails.cache.clear hará diferentes cosas dependiendo de la configuración de tus aplicaciones para config.cache_store . http://guides.rubyonrails.org/caching_with_rails.html#cache-stores

Si está utilizando config.cache_store = :file_store , Rails.cache.clear será funcionalmente idéntico a rake tmp:cache:clear . Sin embargo, si está utilizando algún otro cache_store , como :memory_store o :mem_cache_store , solo Rails.cache.clear borrará la memoria caché de su aplicación. En ese caso, rake tmp:cache:clear simplemente intentará eliminar los archivos de "#{Rails.root}/tmp/cache" pero probablemente no hará nada, ya que probablemente no se almacena nada en el sistema de archivos.