gpt4 book ai didi

ruby-on-rails - Rails Anemone 和 Postgres 只存储 URL

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:39 24 4
gpt4 key购买 nike

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

  1. 我想使用 find_or_create_by_url 而不是 create!,所以我不会每次都重复记录。
  2. 我想保存 URL。目前 URL 被保存到数据库中,如:

    --- !ruby/object:URI::HTTP 方案:http 用户:密码:主机:www.a4apps.com 端口:80 路径:/Websites/SampleCalendar/tabid/89/Default.aspx 查询:不透明:注册表:片段:解析器:

我想要它:

http://www.a4apps.com//Websites/SampleCalendar/tabid/89/Default.aspx

我保存到 Postgres 表的原因是我想要另一个任务稍后使用每条记录的 URL 修改该表,而且,我对此有点陌生,并且对添加的想法有点不知所措在 Anemone 网站上建议了第二个数据库。

我在过去几天尝试调整基本代码,但尚未找到解决方案。

这是我的 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

我的 View 只是将数据输出到网页上:

<% @calendar.each do |part| %>
<tr valign="top">...
<td><%= part.url %>&nbsp;</td>...
</tr>
<% end %>

我的 Controller :

class CalendarController < ApplicationController
def cainventory
@calendar = Calendarparts.all
end
end

最佳答案

好吧,我想我明白了。不知道这是否是理想/正确的方法,但我将路径部分从 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
end

关于ruby-on-rails - Rails Anemone 和 Postgres 只存储 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com