По умолчанию упорядочивайте теги в алфавитном порядке, используя теги для тегов

Я использую plays-as-taggable-on, чтобы мои NewsItem и MediaItem маркируемые модели. По умолчанию доступ к тегам модели с использованием либо tag_list для массива имен тегов или напрямую через ассоциацию с использованием tags для сбора ActsAsTaggableOn::Tags, приводит к появлению тегов в произвольном порядке. Я бы хотел, чтобы они всегда располагались в алфавитном порядке. В документации нет упоминания о настройке порядка по умолчанию, кроме способа поддержания порядка, в котором были созданы теги (с использованием acts_as_ordered_taggable в модели).

Очевидно, я могу заказывать их каждый раз, когда вызываю tags, используя news_item.tags.order(:name), но я бы хотел, чтобы это было поведением по умолчанию во всем приложении, и не хочу дублировать порядок везде, где мне нужно использовать теги.

Как мне настроить мою модель так, чтобы ее tags ассоциация всегда возвращала свои теги в алфавитном порядке?


person Undistraction    schedule 13.03.2015    source источник


Ответы (1)


Боюсь, что такое упорядочивание невозможно в текущей версии гема plays-as-taggable-on. Это очевидно из исходный код, что этот драгоценный камень действительно поддерживает только упорядочение по идентификаторам (сохраняет порядок создания) или вообще не упорядочивает.

Существует открытый запрос на вытягивание, который позволяет упорядочивать по имени или любой другой атрибут, но активность разработки гемов сейчас кажется довольно устаревшей (запрос на вытягивание открыт уже более года). Возможно, вы могли бы попытаться спросить здесь о статусе этого запроса на перенос.

person BoraMa    schedule 28.04.2017