2013-08-15 2 views
0

Если я массив записей, как так:Rails: определение типа модели в коллекции присоединился

@records = Tapes.all + Discs.all 

Как я могу определить, что есть что в представлении и писать код соответственно? Что-то вроде этого является то, что я после:

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

ответ

3

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 %> 
+1

А, простые вещи, а? Огромное спасибо. –

0

Может быть лучшим подходом для этого является определение метода на обоих объектах, которые обеспечат вам ожидать данные:

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

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

Затем в вашем шаблоне:

<% @records.each do |record| %> 
    <%= record.quack %> 
<% end %> 
Смежные вопросы