Добавление классов 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-запрос в верхней части контроллера? В таком случае приветствуются любые указатели. Спасибо