Les deux commandes sont-elles équivalentes? Si non, quelle est la différence?
La tâche rake efface uniquement les fichiers stockés sur le système de fichiers dans "#{Rails.root}/tmp/cache"
. Voici le code pour cette tâche.
namespace :cache do # desc "Clears all files and directories in tmp/cache" task :clear do FileUtils.rm_rf(Dir['tmp/cache/[^.]*']) end end
Rails.cache.clear
fera des choses différentes en fonction du paramétrage de vos applications pour config.cache_store
. http://guides.rubyonrails.org/caching_with_rails.html#cache-stores
Si vous utilisez config.cache_store = :file_store
alors Rails.cache.clear
sera fonctionnellement identique à rake tmp:cache:clear
. Cependant, si vous utilisez un autre cache_store
, comme :memory_store
ou :mem_cache_store
, alors seul Rails.cache.clear
le cache de votre application. Dans ce cas, rake tmp:cache:clear
essaiera simplement de supprimer les fichiers de "#{Rails.root}/tmp/cache"
mais ne fera probablement rien car rien n’est probablement mis en cache sur le système de fichiers.