logging - Rails puts 和 logger.info 在 do 循环内部不起作用
问题描述
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 参数测试这个蜘蛛的输出。
但是,当 @org 未注释时,它只是循环遍历而不从 puts 显示。
解决方案
我通常用于Rails.logger.debug ''
在服务器上显示消息或调试。
正如我刚刚检查的那样,我仍然可以使用它来循环显示消息。
希望这可以帮助
推荐阅读
- python - 如何将三个 if 语句合并为一个?
- android - 将图像上传到存储 Firebase 不起作用
- wordpress - WordPre - 将 ROLE 属性添加到菜单项
- javascript - 如何从 shapefile 访问属性数据以使用传单使叶绿素反应?
- php - 按属性对 JSON 对象进行分组并在数组中拆分结果 PHP | 拉拉维尔
- sql - SQL Server:根据列上的前几个字符查找重复项
- kubernetes - mutating admission webhook 是否能够更改资源的组、版本或种类
- java - 在 JDBC 中使用命名的 Oracle 绑定变量时出现问题
- sql - 如何将 TEXT Array [ ] 传递给 postgres 函数?
- r - 用不同的列连接小标题