gpt4 book ai didi

ruby - 从另一个调用一个 Ruby 脚本

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:14 24 4
gpt4 key购买 nike

我遇到了一个令人困惑的问题。我想从另一个调用一个 ruby​​ 脚本。

考虑到这一点,我创建了一个 testscript.rb 并执行了它,它包含以下代码,

 require './paypal.rb'
puts paypal['L_AMT0']

此代码返回一个数字,这是我的 Paypal 余额。它依赖于使用 ruby​​-paypal gem 的 paypal.rb 文件。当我执行 ruby​​ testscript.rb 时,我得到了我的 paypal 余额的输出,这意味着它工作正常。这告诉我,我从一个 RB 调用另一个 RB 的方法是可以的,因为在上面的场景中,testscript.rb 正在获取一个从 paypal.rb 返回的变量。

使用相同的逻辑,我将上述代码插入到另一个名为 SiriProxy 的程序中。这是一个 ruby 程序。我需要它来获取我的 Paypal 余额。

所以在那个程序中,我做了一个 require paypal.rb,它失败了,因为它找不到它,所以我在 require 中设置了一个修复它的绝对路径。

但是,当 SiriProxy(另一个 ruby​​ rb 给我一个问题)尝试运行 puts paypal['L_AMT0'] 时,它会导致错误并结束程序。

这是错误,

[Info - Plugin Manager] Say: Checking Paypal Balance
/home/siriproxy/.rvm/gems/ruby-1.9.3-p194@SiriProxy/gems/siriproxy-0.3.0/plugins/siriproxy-example/lib/siriproxy-example.rb:47:in `block in <class:Example>': undefined local variable or method `paypal' for #<SiriProxy::Plugin::Example:0x931a228> (NameError)
from /home/siriproxy/.rvm/gems/ruby-1.9.3-p194@SiriProxy/bundler/gems/cora-1edcfb9073d5/lib/cora/plugin.rb:47:in `instance_exec'
from /home/siriproxy/.rvm/gems/ruby-1.9.3-p194@SiriProxy/bundler/gems/cora-1edcfb9073d5/lib/cora/plugin.rb:47:in `block (2 levels) in process'

在上面的输出中,问题似乎是它不理解“paypal”,如下所示:

undefined local variable or method `paypal'

但是,我不明白为什么,因为在 testscript.rb 中我做了完全相同的事情并且它有效。

有人可以帮忙吗?谢谢。

最佳答案

看来@CodeGnome 是对的。

From the Kernel documentation:

要求(名称)→ true 或 false

Loads the given name, returning true if successful and false if the feature is already loaded.

require_relative(string) → 真或假

Ruby tries to load the library named string relative to the requiring file’s path. If the file’s path cannot be determined a LoadError is raised. If a file is loaded true is returned and false otherwise.

关于ruby - 从另一个调用一个 Ruby 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11182846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com