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のサブディレクトリからではなく、pluginsディレクトリからファイルを読み取りますapp/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 は、現在の作業ディレクトリ (/app/controllers/plugins) に /plugins フォルダーがあると認識しています。

(現在の作業ディレクトリを取得) のようなログを記録Dir.getwdして、Rails が認識している場所を確認し、そこからファイルにアクセスします。

ただし、Rails.root を使用してみてください。Dir.foreach(Rails.root.join('app', 'controllers', 'admin', 'plugins'))

于 2013-03-12T21:23:28.233 に答える