ruby - Ruby 需要导致未定义的局部变量
问题描述
我完全是 Ruby 的菜鸟。我希望执行从 Amazon AWS IoT 页面获取的文件,但我在初始要求方面遇到了问题,如下所示。
我使用的是 Ubuntu 18.04,我已经使用sudo apt-get install ruby -full 安装了 ruby ,还安装了 sudo gem install mqtt。该文件名为 iot-connector.rb。我用ruby iot-connector.rb执行文件。很明显它找不到这些需要文件,但是我如何告诉 Ruby 找到它们。谢谢。
require ‘rubygems’
require ‘mqtt’
#more code....
我得到的错误:
Traceback (most recent call last):
iot-connector.rb:1:in `<main>': undefined local variable or method `‘rubygems’'
for main:Object (NameError)
解决方案
您使用了错误类型的引号,使用常规引号而不是反引号:
require 'rubygems'
require 'mqtt'
反引号用于运行 shell 命令,顺便说一句。你在这里遇到红宝石错误很奇怪,我希望像这样:
[29] pry(main)> `rubygems`
Errno::ENOENT: No such file or directory - rubygems
推荐阅读
- c++11 - 创建具有未知数量的 std::array 的函数
- wcf - WCF VPN 端点和 Internet 端点
- codenameone - cn1PostMessage 在 Android 上未定义。PostMessage 不工作
- java - 创建单例时使用锁定对象
- android - 如何将 LayoutBackground 移动到 ImageView 后面
- angular - 如何防止在Angular发布/获取请求中“按字母顺序自动排序对象属性”
- javascript - 您可以自动将产品从在线商店添加到 WooCommerce 吗?
- angular - IE11 不在动态表中渲染 DOM 元素
- ruby-on-rails - 重构代码以减少分配分支条件的大小
- swift - 谁在swift 5中以水平和垂直方向滚动表格视图