У меня есть эта строка кода в моем приложении rails 4,
= link_to t('first_name'), url_for(sort: "users.first_name"), style: 'color: white'
она сортирует мою таблицу имен пользователей по алфавиту с первого клика. Я пытался найти способ заставить его сортировать имена в обратном алфавитном порядке по второму щелчку после этого формата, но безрезультатно какие-либо предложения?
Контроллер, отвечающий за это согласно моему журналу,
def set_memberships
@memberships = current_organization.memberships
.includes(:roles, :user, linked_membership: :organization)
if params[:action] == 'retired_memberships'
@memberships = @memberships
.joins("INNER JOIN users on users.id = memberships.user_id")
.joins("LEFT OUTER JOIN memberships as linked_memberships ON memberships.linked_membership_id = linked_memberships.id")
.where("(memberships.linked_membership_id is NOT NULL AND memberships.retired = true AND linked_memberships.retired = false) OR
(memberships.retired = true AND memberships.linked_membership_id IS NULL)")
.where(retired: true)
else
@memberships = @memberships
.joins("INNER JOIN users on users.id = memberships.user_id")
.joins("LEFT OUTER JOIN memberships as linked_memberships ON memberships.linked_membership_id = linked_memberships.id")
.where("(memberships.linked_membership_id IS NUll AND memberships.retired = false) OR
(memberships.linked_membership_id is NOT NULL AND memberships.retired = false AND linked_memberships.retired = true)")
end
@sort_field = params[:sort].presence || "users.last_name"
@memberships = @memberships.order(@sort_field).page(params[:page]).per(30)
end
Вероятно, стоит отметить, что этот контроллер сортирует не только по именам, но я прошу имена, чтобы было проще.