Rails从多个模型中提供

时间:2017-05-29 14:55:41

标签: ruby-on-rails activerecord

根据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}

1 个答案:

答案 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}