在我看来,我有:
<% @results.each_pair do |country_code, available| %>
<% @prices.each do |cc,domain| %>
<% klass = available.registered? ? "pinfo" : "info" %>
<span class="<%= klass %>"></span>
<%= @domain + country_code %> <%= domain.send(cc) %>$<br />
<% end %>
<% end %>
输出是:
asdsaddk 8$
asdsaddk 1$
asdsadcom 8$
asdsadcom 1$
我的控制器:
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
如何创建一个正常的循环,例如输出不重复的地方,如:
asdsaddk 8$
asdsadcom 1$
答案 0 :(得分:1)
替换:
<% @results.each_pair do |country_code, available| %>
<% @prices.each do |cc,domain| %>
<%= @domain + country_code %> <%= domain.send(cc) %>$<br />
<% end %>
<% end %>
使用:
<% @prices.each do |cc,domain| %>
<%= @domain + cc.to_s %> <%= domain.send(cc) %>$<br />
<% end %>
确实,您不使用available
中的@results
变量。
旁注:再一次,你这里没有任何数组,只有哈希。
需要重组:
def domain
country_codes = %w[ dk com ]
@domain = "asdsad"
@output = { }
country_codes.each do |cc|
@output[cc.to_sym] = { :whois => Whois.whois("#{@domain}.#{cc}"),
:domain => Domain.order(cc).first }
end
render :layout => false
end
在您看来:
<% @output.each do |cc, hash| %>
<span class="<%= hash[:whois].registered? ? "pinfo" : "info" %>"></span>
<%= @domain + key.to_s %> <%= hash[:domain].send(cc) %>$<br />
<% end %>