将参数传递给rake任务的问题

时间:2018-09-04 18:27:13

标签: ruby-on-rails ruby

我正在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
 # ...

当代码到达binding.pry行时,出现以下问题: blank bug

这确实是一个错误,还是我附近缺少一些基本知识? 谢谢!

1 个答案:

答案 0 :(得分:2)

你想要

arg[:argument].blank?

因为arg是带有:argument键的哈希。

附带说明:以下内容将是任务的更具描述性的定义(注意复数argslocation,因为它看起来像您正在传递位置):

task :bar, [:location] => :environment do |_task, args|
  if args[:location].blank?
    # do stuff
  else
    # do other stuff
  end
end