2017-05-29 82 views
1

基於this問題喂,我創建了一個控制器:Rails的多個模型

@activities = (@plays + @wants).sort_by {|a| a.created_at}.reverse 

和視圖:

- @plays.each do |play| 
    You played #{play.game.name} 

但是它無法顯示:undefined method 'play' for #Want:0x007f39ab8e99e0

如何我可以訪問每個依賴模型的不同字段和他們的名字嗎? 像:

- @activities.each do |activity| 
    - if activity.model_name = Play 
    You played #{activity.model.name} 
    - else  
    You want #{play.want.name} 

回答

2

什麼你與if activity.model_name = Play做的是一個分配,則可以使用==比較從這樣的對象類,並選擇對應於從特定的類對象的屬性做同樣的。

您正在使用變量activity來引用@activities中的對象,因此playeach塊中不存在。

你可以嘗試使用:

- @activities.each do |activity| 
    - if activity.class == Play 
    You played #{activity.attribute_for_a_play_object} 
    - else  
    You want #{activity.attribute_for_a_non_play_object}