Ruby on rails 将网页或nokogiri文档保存到数据库字段

Ruby on rails 将网页或nokogiri文档保存到数据库字段,ruby-on-rails,ruby-on-rails-3,windows-7,ubuntu,Ruby On Rails,Ruby On Rails 3,Windows 7,Ubuntu,我做了一点搜索,但在这件事上却一无所获。我希望将网页存储到数据库字段中,以便以后可以查看源代码(我不想保存到文件中,因为我在Heroku上) 我试过: Model.create(:text=>open(url)和 Model.create(:text=>Nokogiri::HTML(open(url)) 然而,这两种方法似乎都不能保存页面的源代码。我假设我在这里遗漏了一步,但是有人能把我引向正确的方向吗 编辑#1 当我尝试在我的Nokogiri::HTML文档上搜索时,我得到一个空字符串。下面是

我做了一点搜索,但在这件事上却一无所获。我希望将网页存储到数据库字段中,以便以后可以查看源代码(我不想保存到文件中,因为我在Heroku上)

我试过:
Model.create(:text=>open(url)

Model.create(:text=>Nokogiri::HTML(open(url))

然而,这两种方法似乎都不能保存页面的源代码。我假设我在这里遗漏了一步,但是有人能把我引向正确的方向吗

编辑#1 当我尝试在我的Nokogiri::HTML文档上搜索时,我得到一个空字符串。下面是我的代码。使用长用户代理的原因是Google根据用户代理显示不同的结果,而我尝试模拟桌面用户代理。
Nokogiri::HTML(打开(“http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=apple“,“用户代理”=>“Mozilla/5.0(Windows NT 6.1)AppleWebKit/535.2(KHTML,像Gecko)Chrome/15.0.874.121 Safari/535.2”),无“utf-8”。至

编辑#2 非常奇怪。此代码也返回一个空字符串。我与其他一些人进行了检查,他们没有得到空字符串。
text=open(“http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=apple“,“用户代理”=>“Mozilla/5.0(Windows NT 6.1)AppleWebKit/535.2(KHTML,类似Gecko)Chrome/15.0.874.121 Safari/535.2”。阅读

编辑#3
我发现我在Windows 7上的ruby安装一定有问题。我在Windows机器上以来宾身份运行的ubuntu安装上进行了尝试,效果如预期。从现在开始,我将在ubuntu安装上进行编码。

你想调用Nokogiri中
文档
类的
to#s
方法。你可以这样做:

text = Nokogiri::HTML(open("http://google.com")).to_s
MyModel.create(:text => text)
确保模型中的
text
列为
text
类型

编辑:因为你什么都不需要Nokogiri,所以你可以使用
openURI

require 'open-uri'
text = open("http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=apple", 'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2').read
MyModel.create(:text => text)

您想在Nokogiri中调用
文档
类的
#to_s
方法。您可以这样做:

text = Nokogiri::HTML(open("http://google.com")).to_s
MyModel.create(:text => text)
确保模型中的
text
列为
text
类型

编辑:因为你什么都不需要Nokogiri,所以你可以使用
openURI

require 'open-uri'
text = open("http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=apple", 'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2').read
MyModel.create(:text => text)

谢谢。我想可能是因为我的文档的格式问题,我还是遇到了一些问题。请看我上面的编辑。我似乎在使用Nokogiri时遇到了问题。有没有办法不使用Nokogiri就保存网页源代码?运行上面的代码,我得到了一个肯定的回答:我更新了答案,所以你可以看到how在没有Nokogiri的情况下这样做。一定是我的ruby或ruby gems表现得很奇怪,因为我刚在另一台机器上试用过,它工作得很好。谢谢。我想可能是因为我的文档的格式问题。请看我上面的编辑。我似乎在Nokogiri上遇到了问题。有没有办法保存我们的文档b在不使用Nokogiri的情况下保存源代码?运行上面的代码,我得到了一个似乎是肯定的回答:我更新了答案,这样你就可以看到如何在没有Nokogiri的情况下完成它。一定是我的ruby或ruby gems表现得很奇怪,因为我刚刚在另一台机器上尝试过,它工作得很好。