私は当惑する問題を抱えています。ある Ruby スクリプトから別の Ruby スクリプトを呼び出したい。
これを念頭に置いて、testscript.rbを作成して実行すると、このコードが含まれています。
require './paypal.rb'
puts paypal['L_AMT0']
このコードは、私のペイパルの残高である数字を返します。これは、ruby-paypal gem を使用する paypal.rb ファイルに依存しています。ruby testscript.rb を実行すると、paypal の残高が出力されます。これは、正常に機能していることを意味します。上記のシナリオでは、testscript.rb が paypal.rb から返される変数を取得しているため、これは、ある RB を別の RB から呼び出すための私の方法が問題ないことを示しています。
これと同じロジックを使用して、上記のコードを SiriProxy と呼ばれる別のプログラムに挿入しました。ルビプログラムです。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」を理解できないことが問題のようです。
未定義のローカル変数またはメソッド「paypal」
ただし、 testscript.rb でまったく同じことを行い、機能するため、その理由はわかりません。
誰でも助けることができますか?ありがとうございました。