如果我像这样制作一组记录:
@records = Tapes.all + Discs.all
如何识别视图中哪个是哪个并相应地编写代码?像这样的东西是我所追求的:
<% @records.each do |record| %>
<%= record.side if record.type => :tape %>
<% end %>
如果我像这样制作一组记录:
@records = Tapes.all + Discs.all
如何识别视图中哪个是哪个并相应地编写代码?像这样的东西是我所追求的:
<% @records.each do |record| %>
<%= record.side if record.type => :tape %>
<% end %>
使用object.class
或object.is_a?
。如下所示:
<% @records.each do |record| %>
<%= record.side if record.class == Tape %>
<% end %>
或者,
<% @records.each do |record| %>
<%= record.side if record.is_a?(Tape) %>
<% end %>
对此可能更好的方法是在两个对象上定义一个方法,该方法将为您提供预期数据:
class Tapes
def quack
self.side
end
...
end
class Discs
def quack
# self.something
end
...
end
然后在您的模板中:
<% @records.each do |record| %>
<%= record.quack %>
<% end %>