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

How do display activity owner name in Angular?

我正在尝试使用 Public Activity gem and the Railscast 在我的 rails/angular 应用程序中构建一个 activity 流。 rails 方面的设置非常简单,但我在 angular 方面遇到了一些麻烦。

我跟踪了我的电影模特。因此,当添加电影时,它会被记录为新的 activity。我已经创建了一个模板、服务和控制器(在 angular 端)来显示 activity.

模板,

%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显示。

您可以加​​入用户table合并用户名。

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

现在您应该可以调用 activity.name