将参数传递给 rake 任务的问题
Problem with passing argument to rake task
我在 Ruby 2.3.1p112 和 Rails 4.2.7.1 中编写代码,并在尝试在其中一个 rake 文件中使用 if 语句时遇到此错误(?)。
我称这个抽佣任务为:
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 行时,我遇到以下问题:
这真的是一个错误还是我缺乏一些基本知识?
谢谢!
你想要
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
我在 Ruby 2.3.1p112 和 Rails 4.2.7.1 中编写代码,并在尝试在其中一个 rake 文件中使用 if 语句时遇到此错误(?)。
我称这个抽佣任务为:
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 行时,我遇到以下问题:
这真的是一个错误还是我缺乏一些基本知识? 谢谢!
你想要
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