2010-08-01 53 views
0

我想從命令行中的任何位置從命令提示符下運行一個紅寶石文件的庫。我有從其他ruby文件實例化類的Main.rb程序。linux-Ruby - 運行一個紅寶石應用程序作爲命令

我將我的lib的類路徑存儲在.zshrc中。然後我運行main.rb的,但它是不能夠加載所需的Ruby文件(文件在我的lib文件夾),並拋出這個錯誤:

`require': no such file to load -- Data.rb (LoadError) 

我怎樣才能解決這個問題?我只需要一個簡潔的命令在shell上運行並在控制檯上投擲結果。

請幫忙。

+0

嘗試把這個在Main.rb'的'頂部:'$:<< ''除非$ :. include? '。'' – Adrian 2010-08-01 18:48:33

回答

2

紅寶石搜索在$ LOAD_PATH變量的目錄,試圖找到你導入與「要求」聲明文件。您有幾種選擇:

  1. 您的文件移動到一個目錄中的$ LOAD_PATH列表
  2. 給Ruby的路徑到您的圖書館在你需要聲明:

    需要一個「/ home/MYDIR/MyProject的/ lib中/在main.rb的Data.rb」

  3. 修改$ LOAD_PATH,包括您的lib目錄

  4. 通紅寶石命令行參數加入您的LIB可怕ctory至$ LOAD_PATH與-I選項:

    紅寶石-I /家庭/ MYDIR/MyProject的/ lib目錄main.rb的

+0

嘿$:<<'。'除非$ :. include? ''亙古不變的工作再加上我如何才能使用它作爲一個正常的命令說,測試或只是主沒有任何.RB事... 我正打算使用上面的第三個選項,但仍DONO如何將這個在我的代碼。 – user384070 2010-08-02 23:37:03

0

通常你需要改變你的

require 'abc' 

爲相對路徑,像

require File.dirname(__FILE__) + "/abc" 

或使用(我)require_relative在1.9

require_relative 'abc' 

GL。 -r