Добавление классов CSS к элементам на индексной странице Rails

Надеюсь, на это есть простой ответ.

      def index

    @pagy, @drivers = pagy(
        Driver.joins(:profile).select(
          'drivers.*',
          '(profiles.no_races + profiles.no_poles + profiles.no_podiums + profiles.no_wins) AS score'
        ).reorder('score DESC'),
        page: params[:page],
        items: 16
    )

    @drivers.each do |driver|
      @subscription = driver.subscriptions.active.last

      if @subscription
        @sub_type = driver.subscription.stripe_plan
        if @sub_type == "price_xxx" || @sub_type =="price_xxx"
          @sub_type = 'gold'
        elsif @sub_type == "price_xxx" || @sub_type == "price_xxx"
          @sub_type = 'silver'
        end
      else
        @sub_type = 'free'
      end
    end
  end

У меня есть индексная страница рельсов под названием «драйверы». В моем контроллере я выбираю все драйверы с помощью SQL-запроса, который также сортирует разбиение на страницы с помощью гем @pagy и складывает их оценки. После этого я хочу узнать, есть ли у них подписка, и добавить класс CSS gold, silver или free в зависимости от того, какая подписка у них есть в моем шаблоне, используя @sub_type.

      <div class="row mb-4">

        <% @drivers.each do |driver| %>

          <div class="col-sm-6 mb-3 col-md-4 mb-3 col-lg-3 mb-3 driverCard" itemscope itemtype="http://schema.org/Person">
            <section>
              <div class="card tier <%= @sub_type %>">
                <div class="card-header">
                  <div class="flag rounded-circle">
    .........

В качестве теста у меня 32 драйвера. Один должен быть серебряным, другой - золотым, а остальные должны быть бесплатными.

На самом деле происходит следующее: первая страница полностью бесплатна, вторая страница полностью золотая и ни на одной из страниц нет серебра.

Я предполагаю, что подписки должны входить в pagy-запрос в верхней части контроллера? В таком случае приветствуются любые указатели. Спасибо

0 ответов

Другие вопросы по тегам