0

我有 rails 项目,想从目录中加载所有文件。我像“”rails c一样开始它,但它说

No such file or directory

这是我的代码示例:

class ParserPlugin < ApplicationController
  def self.loadPlugins
    a = File.new("1234")
    Dir.foreach("/plugins") do |f|
      if f != '.' and f != '..'
        load("/plugins" + f.to_s)
      end
    end
  end

  def self.createplugin
    @@plugins << self.new
  end
end

文件结构是

  /home/andrii/LV-081/app/controllers/admin/plugins

你能给我什么建议吗?

4

2 回答 2

0

您从目录中读取文件/plugins,而不是从. 试试这个:pluginsapp/controllers/admin

Dir.foreach(Rails.root.join("app", "controllers", "admin", "plugins")) do |f|
  if f != '.' and f != '..'
    load(Rails.root.join("app", "controllers", "admin", "plugins", f.to_s))
  end
于 2013-03-12T21:23:12.420 回答
0

您的文件可能位于此处:/app/controllers/ParserPlugin.rb

您要打印的目录在这里:/app/controllers/admin/plugins

通过这样说:

Dir.foreach("/plugins")

Rails 认为当前工作目录中有一个 /plugins 文件夹(/app/controllers/plugins)

我会尝试记录Dir.getwd(获取当前工作目录)之类的内容,以查看 Rails 认为您在哪里,然后从那里访问您的文件。

您应该尝试使用 Rails.root:Dir.foreach(Rails.root.join('app', 'controllers', 'admin', 'plugins'))

于 2013-03-12T21:23:28.233 回答