用户活动以下

时间:2013-01-08 02:31:56

标签: html ruby-on-rails ruby ruby-on-rails-3

我有一个活动模型

id | activity_model | activity_type | user_id | activity_id | created_at | updated_at|
1  | Article        | Created       | 1       |   25        | a time     |  a time   |
2  | Headline Story | Created       | 1       |   26        | a time     |  a time   |

** activity_model是一个字符串

现在让我说我的控制器(实际上更清洁,因为第二部分在模型中):

@user_activity = Activity.where(user_id: 1).all

我希望我的观点是这样的:

      - @user_activity.each do |activity|
        - if activity_model == "Article"
          = link_to Article.find(activity.activity_id).name, activity
        elsif activity_model == "Headline Story"
          = link_to HeadlineStory.find(activity.activity_id).name, activity
        = activity.activity_type
        = "#{time_ago_in_words(activity.created_at)} ago"

我专注于上面块的if语句部分。

我的问题是。当我迭代这些不同的模型类型时,如何让我的link_to干净?我在视图中使用find,这可能不对..

1 个答案:

答案 0 :(得分:0)

如果您想要遍历Activity个对象并同时找到Article个对象,您可以通过以下几种方式执行此操作:

  • 在控制器中填充哈希表并在视图中使用它。
  • 创建一个查看模型,您可以在控制器中填充它并使用它来渲染您的视图。
  • 创建一个可在视图中使用的辅助函数。

第一个和最后一个选项实施起来最快。