Rails:如何将本地文件加载到模型中?

时间:2013-06-10 19:24:31

标签: ruby-on-rails ruby xml nokogiri

我的文件位于/lib/dir/file.xml

我试图通过以下方式来称呼它:

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

但是我得到了错误,我不确定我做错了什么。该文件肯定存在。

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

如果有帮助的话,我会使用rails 4和Ruby 2。如何加载此文件?

1 个答案:

答案 0 :(得分:4)

我发现了问题所在。

RAILS_ROOT已弃用。您应该使用Rails.root代替。

因此,对于将来会看到这一点的人来说,这是一个解决方案:

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