我有四种不同的模型。
这是一个例子,
@single = Single.all
@coe = Coe.all
@blend = Blend.all
@production = @single+@coe+@blend
然后如何检查@production是哪个模型?
我试过
<% @production.each do |p| %>
<%=p.class.name%>
<% end %>
但它会返回&#34;数组&#34;
这似乎很简单,但我无法找到答案 (我编辑了问题)
答案 0 :(得分:6)
问题出在这里
@single = Single.all
@coe = Coe.all
@blend = Blend.all
@production = @single+@coe+@blend
用
更改这些行@single = Single.all.to_a
@coe = Coe.all.to_a
@blend = Blend.all.to_a
@production = @single+@coe+@blend
然后你会检查
@production.first.class.name #Single
@production.last.class.name #Blend
所以在你看来你可以做到这一点
<% @production.each do |p| %>
<% p.each do |product| %>
<%= product.class.name %>
<% end %>
<% end %>
答案 1 :(得分:1)
如果在@production上迭代时返回数组,那么你需要尝试这个。
<% @production.each do |p| %>
<% p.each do |product| %>
<%= product.class.name %>
<% end %>
<% end %>
答案 2 :(得分:0)
@production
是单个,coe和混合的组合的集合,这就是为什么@production.class.name
不起作用,你需要像这样迭代每个对象:
<% @production.each do |object| %>
<%= object.class.name %>
<% end %>