ruby-on-rails - 将参数传递给 rake 任务时出现问题

标签 ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5 ruby-on-rails-6

我正在使用 Ruby 2.3.1p112 和 Rails 4.2.7.1 进行编码,并在尝试在其中一个 rake 文件中使用 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

这确实是一个错误还是我缺乏一些基本知识? 谢谢!

最佳答案

你想要

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

关于ruby-on-rails - 将参数传递给 rake 任务时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52172080/

相关文章:

ruby-on-rails - Rails 4 和 Turbolinks - 元标签不变

ruby-on-rails - 在没有指纹的情况下在 Rails 中编译 sass 样式表

ruby-on-rails - CarrierWave 与 Cloudfront 生成错误的 URL

ruby - 使用 cucumber/aruba/timecop : How to inject the context 测试命令行应用程序

ruby-on-rails - rails-installer.sh 运行正常但 ruby​​、irb、rails 命令 "not found"(UB12.04)

javascript - 无法验证 Stripe Payments 的 CSRF token [Rails 4]

ruby-on-rails - 使用Searchkick进行地理空间搜索以查找用户

mysql - Rails 两个键上的左连接不返回连接字段

html - 我可以在 Rails 中使用哪些工具/方法从外部 URL 获取信息?

Ruby 脚本 - Telnet 在登录期间挂起