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



我正试图使用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显示它。

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

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

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

最新更新