在rake任务中调用来自不同ruby文件的函数

时间:2014-01-29 11:45:10

标签: ruby-on-rails ruby ruby-on-rails-3 rake rake-task

我在rails.i工作想要在searcht1中调用类“twitter”的函数(show),它位于rake任务的同一目录下的“lib”中。

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

但它没有调用该函数。我没有得到任何结果。  非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我知道这个问题有点过时,但我在rails5应用程序中遇到了问题,这就是我保持任务干净的方法:)

请在 lib / task s =>中创建一个 searchdir 子目录 lib / tasks / 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