Проблема с передачей аргумента грабли - PullRequest
0 голосов
/ 04 сентября 2018

Я пишу в Ruby 2.3.1p112 и Rails 4.2.7.1 и сталкиваюсь с этой ошибкой (?) При попытке использовать оператор if внутри одного из файлов rake.

Я называю это задание с граблями:

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 голосов
/ 04 сентября 2018

Вы хотите

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...