Rails命令rails dev:cache
可切换Rails缓存功能是否在本地开发环境中工作。它通过创建或破坏充当功能标记的文件来实现此目的。但是,对于我们的开发人员设置脚本,我想运行命令,以便始终启用缓存功能,而不要切换缓存功能。
的源代码rails dev:cache
包括以下enable_by_argument
功能:
def enable_by_argument(caching)
FileUtils.mkdir_p("tmp")
if caching
create_cache_file
elsif caching == false && File.exist?(FILE)
delete_cache_file
end
end
如何运行rails dev:cache
命令,以便它使用此参数?我试过几个变化,包括rails dev:cache[true]
,rails dev:cache\[true\]
和rails dev:cache true
,但他们都已经使用了切换的行为,而不是参数控制的行为。
这与如何将命令行参数传递给rake任务不是重复的,因为该问题与将参数传递给Rake任务有关。但这是Rails内置的命令。
默认情况下无法执行此操作,因为原始任务根本不接受任何参数。
但是,如果我们稍微改进任务代码,则可以使它执行您想要的操作。
将其放在您的末尾Rakefile
:
# Remove original task
Rake::Task["dev:cache"].clear
# Reimplement task with new and improved behavior
namespace :dev do
desc "Toggle development mode caching on/off"
task :cache, [:enable] do |task, args|
enable = ActiveModel::Type::Boolean.new.cast(args[:enable])
if enable.nil?
# Old behavior: toggle
Rails::DevCaching.enable_by_file
else
# New behavior: by argument
Rails::DevCaching.enable_by_argument(enable)
puts "Development mode is #{enable ? 'now' : 'no longer'} being cached."
end
end
end
现在您可以使用以下任何一种:
rails dev:cache
rails dev:cache[true]
rails dev:cache[false]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句