1

我编写了一个小 Ruby 脚本,它可以解析远程 XML 文件并使用 Nokogiri 从中提取一些数据。现在我正在尝试编写一个更高级的版本作为 Rails 应用程序。

我的代码在控制器内。它类似于我在 Ruby 脚本中使用的代码,但是它不起作用。我相信这个错误是因为它试图在本地而不是在外部加载 XML。

这是 Rails 给我的错误:

No such file or directory - http://mal-api.com/anime/10?format=xml

这是我的控制器中的代码示例:(如果需要,我可以提供整个东西,但它主要只是默认的 Rails 脚手架代码。)

def create
 require 'nokogiri'
 @anime = Anime.new(params[:anime])

 doc = Nokogiri::XML(open("http://mal-api.com/anime/#{@anime.mal_id}?format=xml"))

 #Title
 title = doc.css("anime english_title").inner_html
 #Snipped rails scaffold code
end

mal_id通过表单传入。Nokogiri 已添加到我的 Gemfile 中。

有什么我遗漏的或者我做错了什么吗?任何帮助表示赞赏。

4

1 回答 1

1

默认情况下open,ruby 中的方法用于打开文件。如果你想直接打开一个 URL,你需要require 'open-uri'. 更多信息可以在文档中找到:http ://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html

于 2013-01-04T08:31:07.707 回答