我想为on_pages_like保存一个特定的匹配。海葵正在做它的事情,并且正在创建存储URL的记录,但是:
find_or_create_by_url这样的东西,而不是create!,所以我不会每次都复制记录。我想要的是:
http://www.a4apps.com//Websites/SampleCalendar/tabid/89/Default.aspx我之所以保存到Postgres表,是因为我想让另一个任务稍后使用每个记录的URL来修改该表,而且,我对此还有点陌生,我对在anemone站点上添加第二个DB的想法有点不知所措。
在过去的几天里,我试图修改基本代码,但还没有找到解决方案。
这是我的Rake任务
namespace :db do
desc "Fetch a4apps urls"
task :fetch_a4apps => :environment do
require 'anemone'
Anemone.crawl("http://www.a4apps.com/") do |anemone|
anemone.on_pages_like(/\/SampleCalendar\/[^?]*$/) do |page|
Calendarparts.create!(:url => page.url)
end
end
end
end我的视图只会将数据输出到网页上:
<% @calendar.each do |part| %>
<tr valign="top">...
<td><%= part.url %> </td>...
</tr>
<% end %>我的控制器:
class CalendarController < ApplicationController
def cainventory
@calendar = Calendarparts.all
end
end发布于 2012-11-02 17:49:41
好吧,我想我想明白了。不知道这是否是理想的/正确的方式,但我正在将路径部分从url中提取出来,并将原始域附加到它的开头。
namespace :db do
desc "Fetch a4apps urls"
task :fetch_a4apps => :environment do
require 'anemone'
website = 'http://www.a4apps.com'
Anemone.crawl(website) do |anemone|
anemone.on_pages_like(/\/SampleCalendar\/[^?]*$/) do |page|
Calendarparts.find_or_create_by_url(:url => website + page.url.path)
end
end
end
endhttps://stackoverflow.com/questions/13178265
复制相似问题