Rails数组帮助选择列

时间:2011-11-01 21:07:48

标签: ruby-on-rails ruby ruby-on-rails-3

我有这个数组:

[:dk, #<Domain dk: 8, id: 12, se: 5, com: 5>]

我想选择dk: 8

输入为:8

我的观点:

<% @prices.each do |price| %>
<%= price %><br />
<% end %>

输出:

[:dk, #<Domain dk: 8, id: 12, se: 5, com: 5>]
[:com, #<Domain dk: 8, id: 12, se: 5, com: 5>]

我的控制器:

def domain
  country_codes = %w[ dk com ]

  @domain = "asdsad"

  @results = { }
  @prices = { }

  country_codes.each do |cc|
    @results[cc] = Whois.whois("#{@domain}.#{cc}")
    @prices[cc.to_sym] = Domain.order(cc).first
  end
  render :layout => false
end

1 个答案:

答案 0 :(得分:2)

你没有数组,你有一个哈希。

这样做:

<% @prices.each do |cc,domain| %>
  <%= domain.send(cc) %><br />
<% end %>

所以:

  • 首先:#<Domain dk: 8, id: 12, se: 5, com: 5>.send(:dk) # => 8
  • 第二名:#<Domain dk: 8, id: 12, se: 5, com: 5>.send(:com) # => 5

根据要求,进一步解释。

  • 您创建了一个哈希:@prices = { }

  • 然后填写:@prices[cc.to_sym] = Domain.order(cc).first

最新的方法是将一个对象添加到哈希:Domain.order(cc).first,使用它的键:cc.to_sym