2014-01-29 68 views
0

我在rails.i中工作,想在rake任務的同一目錄下的「lib」中的searcht1中調用類「twitter」的函數(顯示)。在Rake任務中調用不同ruby文件中的函數

lib/task/search.rake:                           

require_relative "lib/Searcht1"  
    namespace :Searcht do 
    task :search => :environment do 
    obj=Twitter.new 
    obj.show 
    end 
    end 

和 「searcht1.rb」 裏面的階級是這樣

class Twitter 
def show 
    "anylogic" 
end 
end 

,但他並沒有叫那個function.and I M沒有得到任何結果。 大大aprreciate任何幫助

+0

問題要求代碼必須證明正在解決這個問題的一個最小的理解。包括嘗試的解決方案,爲什麼他們不工作,以及預期的結果 –

+0

'require_relative「../ lib/searcht1」'?你似乎也有一些錯別字,例如'searcht1'與'seracht1'和'Twitter'與'twitter',但也許這些只是從輸入問題太快... –

+0

@ p11y:不工作「../lib/searcht1」和關於那些錯別字。是啊,那些是我在 –

回答

0

我知道這個問題有點過時,但我在我的rails5應用程序中的問題,這就是我保持我的任務乾淨:)

請一個子目錄searchdir的lib /任務小號 =>的lib /任務/ searchdir,把你引用的文件searcht1.rb在那裏。 現在你可以在你的rake文件中引用它。

請注意:它是從引用文件運行的。

# in lib/tasks/search.rake                           

namespace :Searcht do 
task :search => :environment do 
    require_relative "searchdir/searcht1"  
end 
end 

使這裏運行代碼:

# in lib/tasks/searchdir/searcht1.rb 
class Twitter 
    def show 
    "anylogic" 
    end 
end 

obj=Twitter.new 
obj.show