首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails Anemone和Postgres只存储URL

Rails Anemone和Postgres只存储URL
EN

Stack Overflow用户
提问于 2012-11-01 13:38:25
回答 1查看 408关注 0票数 2

我想为on_pages_like保存一个特定的匹配。海葵正在做它的事情,并且正在创建存储URL的记录,但是:

  1. 我想使用像find_or_create_by_url这样的东西,而不是create!,所以我不会每次都复制记录。
  2. 我想保存URL。当前,URL保存到DB中,如下所示: - !ruby/object:URI::HTTP方案: http用户:密码: www.a4apps.com端口: 80路径:www.a4apps.com查询:不透明:注册表:片段:解析器:

我想要的是:

代码语言:javascript
复制
http://www.a4apps.com//Websites/SampleCalendar/tabid/89/Default.aspx

我之所以保存到Postgres表,是因为我想让另一个任务稍后使用每个记录的URL来修改该表,而且,我对此还有点陌生,我对在anemone站点上添加第二个DB的想法有点不知所措。

在过去的几天里,我试图修改基本代码,但还没有找到解决方案。

这是我的Rake任务

代码语言:javascript
复制
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

我的视图只会将数据输出到网页上:

代码语言:javascript
复制
<% @calendar.each do |part| %>
    <tr valign="top">...
             <td><%= part.url %>&nbsp;</td>...
    </tr>
<% end %>

我的控制器:

代码语言:javascript
复制
class CalendarController < ApplicationController
  def cainventory
    @calendar = Calendarparts.all
  end
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-02 17:49:41

好吧,我想我想明白了。不知道这是否是理想的/正确的方式,但我正在将路径部分从url中提取出来,并将原始域附加到它的开头。

代码语言:javascript
复制
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
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13178265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档