/ / Rails: jak załadować plik lokalny do modelu? - ruby ​​na szynach, ruby, xml, nokogiri

Railsy: jak załadować lokalny plik do modelu? - ruby-on-rails, ruby, xml, nokogiri

Mam plik znajdujący się w /lib/dir/file.xml

Próbuję to nazwać:

file = Nokogiri::XML(File.open("#{RAILS_ROOT}/lib/dir/file.xml"))

Ale dostaję błąd, nie jestem pewien, co robię źle. Plik zdecydowanie istnieje.

Errno::ENOENT: No such file or directory - #{RAILS_ROOT}/lib/dir/file.xml

Jestem na szynach 4 i Ruby 2, jeśli to pomaga. Jak załadować ten plik?

Odpowiedzi:

3 dla odpowiedzi № 1

Dowiedziałem się, na czym polega problem.

RAILS_ROOT jest amortyzowane. Powinieneś użyć Rails.root zamiast.

Oto rozwiązanie dla osób, które zobaczą to w przyszłości:

root = Rails.root.to_s #make sure string
file = Nokogiri::XML(File.open("#{root}/lib/dir/file.xml"))