我新的軌道,使某種小白錯誤的:我經常需要計算文件中的行數,所以我想給猴子補丁類文件是這樣的:Rails 3:如何在/ lib中加載文件?
class File
def self.line_count(filename)
%x{wc -l #{filename}}.split.first.to_i
end
end
我將其保存到/lib/file_util.rb。我認爲這應該是自動必需的,所以我可以只使用它,但不工作:
$ rails console
>> File.line_count('Gemfile')
NoMethodError: undefined method `line_count' for File:Class
...
於是我嘗試手動要求它,沒有喜悅:
>> require '<myproj>/lib/file_util.rb' # same result with require 'file_util.rb'
=>nil
但是,如果我需要它內IRB它的工作原理:
$ irb
>> require '<myproj>/lib/file_util.rb'
=> true
>> File.line_count('Gemfile')
=> 22
我也試圖添加需要對配置/ application.rb中:
...
Bundler.require(:default, Rails.env) if defined?(Bundler)
require 'file_util.rb'
module <myproj>
...
,我也得到:
我在做什麼錯?
是的文件的自動加載命名爲我工作。現在不知道它是這樣連接的。 – squarism 2011-02-27 04:50:41
我也遇到過這個問題。這是我所做的自動強制lib中的所有文件是必需的:http://stackoverflow.com/questions/4235782/rails-3-library-not-loading-until-require/6797707#6797707 – 2011-07-23 01:42:56