0

我有这样的控制器动作:

@constr_num.each do |o|
      as_oem = get_from_as_oem(o.ARL_SEARCH_NUMBER)
      if as_oem.present?
        oem_art << as_oem
      end
    end    
    @oem_art = oem_art.to_a.uniq

get_from_as_oem 看起来像这样:

def get_from_as_oem(oem)  

    require 'mechanize'
   *************************
    html = page.body

    doc = Nokogiri::HTML(html)
    doc.encoding = 'utf-8'

    rows = doc.search('//table[@id = "MainContent_GridView1"]//tr')
      @details = rows.collect do |row|
          detail = {}
          [
            [:car, 'td[1]/text()'],
            [:article, 'td[2]/text()'],
            [:group, 'td[3]/text()'],
            [:price, 'td[4]/text()'],
          ].each do |name, xpath|
            detail[name] = row.at_xpath(xpath).to_s.strip
          end
          detail
      end
    @details  
  end

如果在视图中我写:=@oem_art 我得到

[[{:car=>"", :article=>"", :group=>"", :price=>""}, {:car=>"Volkswagen", :article=>"1C0959799B 001", :group=>"STEUERG.", :price=>"274,22"}, {:car=>"Volkswagen", :article=>"1C0959799B 003", :group=>"STEUERG.", :price=>"274,22"}, {:car=>"Volkswagen", :article=>"1C0959799B 00E", :group=>"STEUERG.", :price=>"274,22"}, {:car=>"Volkswagen", :article=>"1C0959799B 00F", :group=>"STEUERG.", :price=>"274,22"}, {:car=>"Volkswagen", 
etc...

那我怎么能正常查看它,例如 .each |c| c.汽车等...

4

2 回答 2

1
<% @oem_art.each_pair do |oem_key, oem_value| %>
  <%= oem_key %> => <%= oem_value %></br>
<% end %>
于 2012-10-24T09:29:05.517 回答
0

您可以使用终端或浏览器。您可以使用puts myhash.inspect将您的“转储”哈希打印到终端。日志文件。

或者你在你的控制器中做这样的事情:render text: myhash.inspect

如果您更喜欢解决方案之一,您还可以使用apgem awesome_print 来增强这种体验,它在您的控制台中提供更漂亮和彩色的输出。最重要的是,您可以pry尝试一下。有了它,您可以设置断点,然后在该位置启动交互式控制台。

真棒打印:https
://github.com/michaeldv/awesome_print 撬:https ://github.com/pry/pry

另外: http: //guides.rubyonrails.org/debugging_rails_applications.html

于 2012-10-24T09:25:51.960 回答