我正在Ruby 2.3.1p112和Rails 4.2.7.1中进行编码,并试图在其中一个rake文件中使用if语句时遇到此bug(?)。
我称这个耙任务:
task :bar, [:argument] => :environment do |_task, arg|
binding.pry
if arg.blank?
# do stuff
else
# do other stuff
end
end
来自该工作人员:
# ...
def perform(location = nil)
Rake::Task["foo:bar"].execute(location)
end
# ...
这确实是一个错误,还是我附近缺少一些基本知识? 谢谢!
答案 0 :(得分:2)
你想要
arg[:argument].blank?
因为arg
是带有:argument
键的哈希。
附带说明:以下内容将是任务的更具描述性的定义(注意复数args
和location
,因为它看起来像您正在传递位置):
task :bar, [:location] => :environment do |_task, args|
if args[:location].blank?
# do stuff
else
# do other stuff
end
end