如何在Angular中显示活动所有者名称?

时间:2015-12-30 12:07:12

标签: ruby-on-rails angularjs public-activity

我尝试使用Public Activity gem和Railscast在我的rails / angular应用程序中构建活动流。这是一个非常简单的设置在轨道上,但我在角度方面遇到了一些麻烦。

我已经跟踪了我的电影模型。因此,当添加电影时,它被记录为新活动。我已经创建了一个模板,服务和控制器(在角度侧)来显示活动。

模板,

%ul{"ng-repeat" => "activitie in activities"}
  %li {{ activitie }}

当我在我的应用程序中查看模板时,它会显示如下(预期)。

{"id":2,"trackable_id":5,"trackable_type":"Movie","owner_id":1,"owner_type":"User","key":"movie.create","parameters":{},"recipient_id":null,"recipient_type":null,"created_at":"2015-12-30T11:55:06.766Z","updated_at":"2015-12-30T11:55:06.766Z"}

当然,这不是我想要显示数据的方式,但在这里它变得棘手。在railscast中,Ryan将此代码添加到他的模板中,

<% @activities.each do |activity| %>
  <div class="activity">
    <%= link_to activity.owner.name, activity.owner if activity.owner %>
    <%= render_activity activity %>
  </div>
<% end %>

所以他用activity.owner.name来表示名字。但是我不知道如何在Angular中得到这个结果。 owner_id是添加电影的用户的ID,但我不知道如何通过Angular显示它。

1 个答案:

答案 0 :(得分:1)

您可以加入users表以合并用户名。

PublicActivity::Activity.
  joins("INNER JOIN users ON users.id = activities.owner_id").
  select("activities.*, users.name")

现在您应该可以致电activity.name