获取记录和嵌套关系

Fetching records and nested relations

我在我的应用程序 (repo) 中有一条路线,我在其中获取属于用户的 bookings,我还包括租金和 rentals.rental-ratings在请求中。现在,租赁(属于预订)有许多租赁评级,租赁评级属于用户。在模板中,我有一个组件接受 booking 和 rentalRating 作为参数。如何获得属于预订和当前用户的评分?

预订路线:

import Ember from 'ember';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';

export default Ember.Route.extend(AuthenticatedRouteMixin, {
  sessionAccount: Ember.inject.service(),

  model() {
    const currentUser = this.get('sessionAccount.currentUser');

    return this.get('store').query('booking', {
      filter: {
        'user_id': currentUser.id
      },
      include: 'rental,rental.rental-ratings'
    });
  }
});

预订模板:

<h1>Your bookings</h1>
{{#each model as |booking|}}
  {{booking-card booking=booking rating="??? what goes here???"}}
{{/each}}

最简单的方法是使用 ember-composable-helpers.

sessionAccount 服务移动到控制器中。在您的模板中,您可以只使用 filter-by 助手:

{{#each model as |booking|}}
  {{booking-card booking=booking rating=(get (filter-by "user" sessionAccount.user booking.rental.rentalRatings) "firstObject")}}
{{/each}}