2009-03-28 3 views
2

Ich versuche ein Juwel zu bekommen, das ich in einer Rails-Anwendung installiert habe. Ich kann das Schmuckstück ganz gut in einem Ruby-Programm benötigen, das ich von der Kommandozeile ausgeführt werden:Wie bekomme ich ein installiertes Rubin-Juwel in Rails?

require 'nokogiri' 

Aber wenn ich das gleiche in einen meiner Rails-Controller es Fehler sagen „keine solche Datei zu tun versuchen zu laden - Nokogiri ".

Ich habe versucht, den vollständigen Pfad zu der Datei lib/nokogiri.rb, aber das scheitert, weil es nicht "nokogiri/native" finden kann.

Antwort

3

besser, legen Sie folgend in environment.rb Datei:

Rails::Initializer.run do |config| 
    ... 
    config.gem :nokogiri 
    ... 
end 

Dies wird zeigen, Rails, die Sie an diesem Juwel abhängen. Es ermöglicht Ihnen auch, bestimmte Versionen anzugeben, und es wird automatisch alle Ihre Edelsteine ​​synchronisiert, oder entpacken Sie sie in Vendor/Edelsteine, wenn Sie dies wünschen.

+1

+1 dies ist eine bessere langfristige Lösung, aber ich denke, er kann ein falsch installiertes Juwel haben. –

0

Versuchen Sie, die folgenden

require 'rubygems' 
gem 'nokogiri' 

Wenn Sie auf irgendeine Form von * nix sind haben Sie dann alle Fehler erhalten, wenn Sie den Edelstein installiert, vor allem Fehler besagt, dass der Edelstein nicht auf dem Weg war. Dies kann passieren, wenn du das Juwel als dich selbst und nicht als root installiert hast und du nicht deine persönliche Edelsteinbibliothek in deinem Edelsteinpfad hast.

Wenn Sie immer Ihre Edelsteine ​​Installation mit

sudo gem install some_gem_name 

dann sollten Sie dieses Problem nicht bekommen.

+0

Dies gibt: nicht RubyGem nokogiri (> = 0) Könnte finden Könnte es anders heißen? –

+0

Siehe später bearbeiten. Laufen Sie auf Windows oder irgendeine Form von * nix –

+0

ich laufe auf Windows –

1

Ok, ich habe es herausgefunden. Das wird ziemlich dumm klingen ... aber naja ...

Es stellt sich heraus, dass ich zwei Installationen von Ruby auf meiner Maschine hatte. Ich verwende InstantRails, um meine Testanwendungen zu bedienen, und es wird mit einer Installation von Ruby ausgeliefert. Ich hatte jedoch eine andere Installation außerhalb und es war hier, dass Nokogiri installiert wurde, nicht in der Installation in InstantRails.

In jedem Fall suchten sie an verschiedenen Stellen nach den Edelsteinen.

2

hatte ich einen ähnlichen Fehler, sondern einfach vergessen haben, die folgenden in meinem environment.rb Datei zu setzen: (beachten Sie die "nokogiri" zitiert)

Rails::Initializer.run do |config| 
    ... 
    config.gem "nokogiri" 
    ... 
end