簡體   English   中英

Rails調用類方法

[英]rails call class method

我有我的Rails應用程序。 我有課

 class ParserPlugin < ApplicationController
   def self.loadPlugins
     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

我從“ rails c”開始項目。 如果我嘗試調用“ ParserPlugin.loadPlugins”,則會顯示

NameError: uninitialized constant ParserPlugin

你能給我些幫助嗎?

確保文件名與類名匹配。 文件名稱為:

class ParserPlugin < ...

應該是parser_plugin.rb否則您將得到錯誤

NameError: uninitialized constant ParserPlugin

我假設該文件位於/app/controllers因為它是從ApplicationController類繼承的。

Rails使用延遲加載,這意味着它會在常量出現時解析常量並查找匹配的文件。 並非所有類都在啟動時加載-這是在您首次嘗試訪問ParserPlugin 在這種情況下,Rails會在您自動加載的目錄之一(可能是controllers ,基於您設置的繼承關系)中尋找一個名為parser_plugin.rb的文件。

注意:這很可能不應繼承自ApplicationController 如果不是控制器,則不應將其連接到控制器。 放在其他地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM