【问题标题】:Calling functions from different ruby files in rake tasks在 rake 任务中从不同的 ruby​​ 文件调用函数
【发布时间】:2014-01-29 11:45:10
【问题描述】:

我在 rails 工作。我想在 searcht1 中调用类“twitter”的函数(显示),该函数位于来自 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

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

【问题讨论】:

  • 要求代码的问题必须表明对所解决问题的最低理解。包括尝试过的解决方案、它们为什么不起作用以及预期的结果
  • require_relative "../lib/searcht1" 怎么样?你似乎也有一些错别字,例如searcht1 vs. seracht1Twitter vs. twitter,但也许这些只是因为输入问题太快......
  • @p11y: not working "../lib/searcht1" 以及那些错别字。是的,这些是我在问题中的输入错误
  • 你有什么类型的应用?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-12
    • 2013-09-15
    • 2011-02-09
    • 2014-07-03
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多