Сначала вы должны разделить ваш заказ по-другому. Для меня самый простой способ заказать ваши группы это так:
1. Group notified without priority(3)
2. Group not notified without priority(3) # We also add without priority in this step to avoid duplication
3. Group With the less priority
После этого вы строите некоторый объем и порядок по умолчанию:
class Group < ApplicationRecord
default_scope {order(priority: asc)}
scope :notified, -> { where.not(notifications: 0, priority: 3) }
scope :not_notified, -> { where(notifications: 0).where.not(priority: 3) }
scope :not_important, -> { where(priority: 3) }
end
И, наконец, вы отображаете свои группы следующим образом:
<% @groups = Group.all %>
<% @groups.notified.each do |group| %>
Group notified
<% end %>
<% @groups.not_notified.each do |group| %>
Group not notified
<% end %>
<% @groups.not_important.each do |group| %>
Group not important
<% end %>