[英]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.