0

如果我像这样制作一组记录:

@records = Tapes.all + Discs.all

如何识别视图中哪个是哪个并相应地编写代码?像这样的东西是我所追求的:

<% @records.each do |record| %>
  <%= record.side if record.type => :tape %>
<% end %>
4

2 回答 2

3

使用object.classobject.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 %>
于 2013-08-15T04:45:18.980 回答
0

对此可能更好的方法是在两个对象上定义一个方法,该方法将为您提供预期数据:

class Tapes
  def quack
    self.side
  end
  ...
end

class Discs
  def quack
    # self.something
  end
  ...
end

然后在您的模板中:

<% @records.each do |record| %>
  <%= record.quack %>
<% end %>
于 2013-08-15T05:12:13.507 回答