我编写了一个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中。
我有什么遗漏或我做错了吗? 任何帮助表示赞赏。
答案 0 :(得分:1)
默认情况下,ruby中的open
方法用于打开文件。如果您想直接打开网址,则需要require 'open-uri'
。可以在文档中找到更多信息:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html