根据this问题,我创建了一个控制器:
@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}
答案 0 :(得分:2)
您使用if activity.model_name = Play
执行的操作是分配,您可以使用==
来比较此类对象中的类,并从该特定类中选择与该对象相对应的属性。
您使用变量activity
来引用@activities
中的对象,因此play
块中不存在each
。
您可以尝试:
- @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}