0

刚刚偶然发现这个问题。我有一个显示帖子的新闻源。包含标题及其内容。但是现在我添加了一个新功能,即评论模型。因此,保存在活动表中的键不再只是“post.create”,还有“comment.create”。

当我打电话时出现问题:

<li><strong><%= activity.trackable.title %></strong></li>

因为通常它只是发现可跟踪的是一个帖子。现在它也有评论并且评论模型没有标题,因此它返回错误。

我的问题是如何做到这一点,以便我只能调用 'post.create' 部分或 == 'Post' 的 'trackable_type' 。

这样我只能在新闻源中显示帖子。

4

2 回答 2

0
<% if activity.trackable.title %>
  <li><strong><%= activity.trackable.title %></strong></li>
<% end %>

当然,您也可以显示不同类型的活动,为每个模型和动作定义要呈现的文本。

Ryan Bates 的 Railscast 之一描述了如何做到这一点: http ://railscasts.com/episodes/406-public-activity

于 2014-07-28T12:29:49.533 回答
0

你不需要打电话

= activity.trackable.title

你可以简单地做

= activity.trackable

如果您需要查看 activity.trackable 中的内容,只需像这样检查它

= activity.trackable.inspect

然后您将看到正在跟踪的对象。像这样:

#<Post id: 220, title: "Another Post", body: nil, created_at: "2021-10-03 19:51:12.391681000 +0000", updated_at: "2021-10-03 19:51:12.397088000 +0000", user_id: 1, slug: "another-post", published: false>
于 2021-10-03T20:19:08.293 回答