Ich bin neu irgendeine Art von Noob Fehler zu den Schienen und machen: Ich muss häufig die Anzahl der Zeilen in einer Datei zählen, so versuche ich, wie dieser Affe Patch Klasse File:Rails 3: Wie lade ich Dateien in/lib?
class File
def self.line_count(filename)
%x{wc -l #{filename}}.split.first.to_i
end
end
I speicherte dies in /lib/file_util.rb. Ich dachte, dass dies sollte automatisch erforderlich sein, so dass ich nur könnte es benutzen, aber das funktioniert nicht:
$ rails console
>> File.line_count('Gemfile')
NoMethodError: undefined method `line_count' for File:Class
...
Also ich versuche, es manuell zu verlangen, keine Freude:
>> require '<myproj>/lib/file_util.rb' # same result with require 'file_util.rb'
=>nil
Aber es funktioniert, wenn ich es im IRB erfordern:
$ irb
>> require '<myproj>/lib/file_util.rb'
=> true
>> File.line_count('Gemfile')
=> 22
ich versuche auch, um das hinzuzufügen, benötigt config/application.rb:
...
Bundler.require(:default, Rails.env) if defined?(Bundler)
require 'file_util.rb'
module <myproj>
...
und ich bekomme:
$ rails console
<myproj>/config/application.rb:9:in `require': no such file to load -- file_util.rb (LoadError)
Was mache ich falsch?
Ja, die Benennung der Datei für Autoload funktionierte für mich. Wusste nicht, dass es jetzt so verkabelt war. – squarism
Ich stieß auch auf dieses Problem. Dies ist, was ich tun, um automatisch alle Dateien in lib erforderlich zu machen: http://stackoverflow.com/questions/4235782/rails-3-library-not-loading-until-require/6797707#6797707 –