Превратить оператор if в именованную область

<% @training_dates.reverse.each do |t| %>
  <% if t.candidate_limit != Subscription.group(:training_date_id).count[t.id] %>
      <%= t.name %>
  <% end %>
<% end %>

Я хочу превратить это if заявление в сферу, чтобы я мог сделать @training_dates.(scope).reverse.each,

1 ответ

Я не знаю, каковы ваши другие модели, но примерный объем для training_date модель должна как следует (для rails 4):

class TrainingDate
   scope :sss, -> do
      where.not(candidate_limit: Subscription.group(:training_date_id).count(:id))
           .order(:desc)
   end
end

а потом:

sss.each { |t| t.name }

Для других rails Версии, которые вы должны использовать для пользователя arel gem.

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