2011-02-11 13 views
9

Miałem działającą aplikację, dodałem Nokogiri, aby parsować trochę xml, działa dobrze lokalnie.Awaria aplikacji Heroku, logi mówią "Brak takiego pliku do załadowania - nokogiri (LoadError)"

My Gemfile obejmuje: gem 'nokogiri'

Pobiegłem bundle install i zweryfikowała moje Gemfile.lock obejmuje DEPENDENCIES ... nokogiri

W mojej klasie kontrolera dodałem (zrobił thinkI musiał jednak masz błąd lokalnie gdybym zrobił):

class MydealController < ApplicationController 
    require 'rubygems' 
    require 'open-uri' 
    require 'nokogiri' 

gdy używam przeglądarki, aby uzyskać adres URL w MydealController który używa nokogiri doc = Nokogiri::XML(getresult) awarii Heroku.

heroku logs pokazuje ten błąd No such file to load -- nokogiri (LoadError)

Patrząc na to, co się dzieje, kiedy git push heroku nie widzę nokogiri na liście wielu wielu klejnotów, które zostaną zainstalowane. Heroku mówi, że push był w porządku, ale nokogiri nie jest na liście i dostaję wspomniany błąd ...

+0

Czy dodałeś Nokogiri do 'Gemfile' twojej aplikacji? –

+2

Druga linia mojego tekstu "My Gemfile zawiera: gem 'nokogiri'" – jpwynn

+0

Widziałem post (bez odpowiedzi) na niektórych blogach sugerujących, że może to być problem, w którym używam Windowsa, czy pakiet instalował lokalnie, a potem heroku Barfs na klejnot z jakiegoś powodu. wydaje się jednak niewiarygodne. – jpwynn

Odpowiedz

1

Wydaje się, że podczas korzystania z systemu Windows Gemfile.lock będzie zawierać wersję nokogiri gem specyficznego dla Windows, rozwiązaniem jest usunięcie Gemfile.lock i popchnąć do Heroku.

Więcej informacji na ten temat here

0

Po prostu miałem ten sam problem - musisz uruchomić bundle install, aby go dodać do Gemfile.lock, którego heroku szuka, aby znaleźć odinstalowane zależności.

+1

tak, zrobiłem to i zweryfikowałem, że było w gemfile.lock, jak wspomniano w pytaniach. Wygląda na to, że problemem jest to, że moim środowiskiem programistycznym są okna. westchnienie. – jpwynn

1

Twoim zadaniem należy wybrać, aby go zaakceptować.

Zapewnić:

  1. nokogiri jest w Gemfile.lock
  2. Gemfile.lock jest zobowiązana do git
  3. naciśnięciu popełnić że ma Nokogiri w Gemfile.lock do Heroku

Powodzenia! Ten komunikat będzie samounicestwienia się w 10 sekund ...

0

próby usunięcia require 'nokogiri' od kontrolera.

To działa dla mnie.