如何在Rails风格中读取文件

Ana*_*nar 3 ruby ruby-on-rails nokogiri

我有一些数据存储为XML文件.我把它放到我创建的目录中,app/data/myxml.xml.

现在我想用Nokogiri解析它.要找到我引用绝对路径的文件:

@doc = Nokogiri::XML(open("/home/me/webA/myrailsproject/app/data/myxml.xml"))
Run Code Online (Sandbox Code Playgroud)

绝对路径肯定会使代码变得丑陋.是否有更简洁,更清晰的方式来引用该文件?如:

@doc = Nokogiri::XML(open("myxml"))
Run Code Online (Sandbox Code Playgroud)

Sco*_*t S 5

Rails中的当前目录是应用程序根目录,因此您可以这样做

@doc = Nokogiri::XML(open("data/myxml.xml"))
Run Code Online (Sandbox Code Playgroud)

或者如果你想确定,你可以使用RAILS_ROOT常量 -

@doc = Nokogiri::XML(open("#{RAILS_ROOT}/data/myxml.xml"))
Run Code Online (Sandbox Code Playgroud)