来自不同网站的网络抓取信息

时间:2015-02-23 09:53:08

标签: ruby-on-rails

我使用名为MetaInspector的宝石来搜索来自不同网站的数据。我正在建立一个网站,我可以从不同的网站收集数据,但我很难设置。我有一个名为site的模型,标题和url都是字符串。当我创建一个新的“网站”时,该名称将作为example.com/"sitename“出现,并且在那里我希望从该网站获得数据。我有一个想法,通过添加page = MetaInspector.new到新方法,但无法看到我如何在那里设置一个网址。 如果需要,我可以显示我的控制器和其他信息。

控制器

  class Admin::SitesController < Admin::ApplicationController
   def index
     @sites = Site.all
   end

   def show
     @site = Site.friendly.find(params[:id])
   end

   def edit
     @site = Site.friendly.find(params[:id])
   end

   def update
     @site = Site.friendly.find(params[:id])
     if @site.update(site_params)
       redirect_to admin_path
     else
       render :edit
     end
   end

   def destroy
     @site = Site.friendly.find(params[:id])
     @site.destroy
     if @site.destroy
       redirect_to admin_path
     end
    end

    def new
      @site = Site.new
    end

    def create
       @site = Site.new(site_params)
       if @site.save
          redirect_to admin_path
       else
          render :new
       end
     end

    private
      def site_params
        params.require(:site).permit(:title, :url)
      end
  end

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望显示已添加的Site的metainfo。您可以将该代码放在控制器的show操作中:

def show
  @site = Site.friendly.find(params[:id])
  @page = MetaInspector.new(@site.url)
end

并更新show.html.erb模板以显示有关@page的信息,即:

<%= @page.title %>