use*_*694 6 rake ruby-on-rails activemodel
我有一个支持ActiveModel缓存的gem有问题.当我使用观察者缓存模型时,在应用程序初始化期间,它会尝试描述表以获取所有字段名称.
rake任务运行时也会执行相同的操作,包括db:migration.在这种情况下,存在一些循环引用错误.我想检测当前的rake任务,跳过gem初始化,但我不知道如何找出通过rake任务调用的代码.怎么检查?
zsq*_*are 13
我没有得到你想要做的,但这里是获取任务名称的一个例子.
task :testing do |task_name|
puts task_name
end
Run Code Online (Sandbox Code Playgroud)
这个问题已被问到一些地方,我认为任何答案都不是很好...... 我认为答案是检查Rake.application.top_level_tasks,这是一个将要运行的任务列表.Rake并不一定只运行一项任务.
如果您通过以下方式运行任务,rake task或者bundle exec rake task您可以通过以下方式在初始化程序中检查它:
if $0.end_with?('rake')
# rake stuff
else
# non-rake stuff
end
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以使用$PROGRAM_NAME代替$0。
| 归档时间: |
|
| 查看次数: |
3758 次 |
| 最近记录: |