Rails从控制器查看哈希视图

时间:2012-10-24 09:17:21

标签: ruby-on-rails ruby view hash

我有这样的控制器动作:

@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.car等......

2 个答案:

答案 0 :(得分:1)

<% @oem_art.each_pair do |oem_key, oem_value| %>
  <%= oem_key %> => <%= oem_value %></br>
<% end %>

答案 1 :(得分:0)

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

或者您在控制器中执行以下操作:render text: myhash.inspect

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

令人敬畏的印刷品:https://github.com/michaeldv/awesome_print
勉强:https://github.com/pry/pry

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