Rails puts和logger.info在do循环内部无法正常工作

时间:2019-05-26 19:19:49

标签: logging ruby-on-rails-5 puts

def poster
    mechanize = Mechanize.new
    Spider.start_at('http://www.cnn.com/') do |s|
      s.add_url_check do |a_url|
        a_url =~ %r{^http://www.cnn.com/*}
      end
      s.on :success do |a_url, resp|
        agent = mechanize.get("#{a_url}")
        cnnbody = resp.body
        parsedcnnbody = Nokogiri::HTML.parse(cnnbody)
        tags = parsedcnnbody.xpath("//a")
        imgs = parsedcnnbody.xpath("//img")
        headers = parsedcnnbody.css("h1")
        containers = parsedcnnbody.css(".zn__containers")
        containers.each do |container|
          container.xpath("//a").each do |link|
            Spider.start_at(link['href']) do |d|
              d.on :success do |b_url, res|
                # @org = Organization.where(title: "CNN").first_or_create!
                @parsedbody = Nokogiri::HTML.parse(res.body)
                @authorusername = @parsedbody.css(".metadata__byline__author")
                puts @authorusername
                # @author = User.where(username: @authorusername, organization_id: @org.id).first_or_create!
                @parsedtext = @parsedbody.css(".l-container").css(".l-container")
                puts @parsedtext
                # @post = Post.where(title: parsedbody.css(".pg-headline"), content: parsedtext)

在取消对其余工作的注释之前,我想使用puts参数测试该Spider的输出。

但是,当@org取消注释时,它将循环遍历而不会从puts中显示。

1 个答案:

答案 0 :(得分:0)

我通常使用Rails.logger.debug ''在服务器上显示消息或进行调试。

正如我刚刚检查的那样,我仍然可以使用它来循环显示消息。

希望这会有所帮助