使用Acts As Taggable On默认按字母顺序排序标签

15
我正在使用acts-as-taggable-on来为NewsItem和MediaItem模型添加标签。默认情况下,使用tag_list访问模型的标签将返回标签名称的数组,使用tags访问关联则返回ActsAsTaggableOn::Tag的集合,但是两者都会以任意顺序返回标签。我希望它们始终按字母顺序排列。文档中没有提到如何设置默认顺序,除了一种通过在模型中使用acts_as_ordered_taggable维护标签创建顺序的方法。
显然,每次调用tags时都可以使用news_item.tags.order(:name)进行排序,但我希望在整个应用程序中这都是默认行为,并且不想在需要使用标签的地方重复排序。 如何设置我的模型,使其tags关联始终以字母顺序返回标签?
1个回答

7
很抱歉,当前版本的acts-as-taggable-on gem无法执行此类排序。从源代码可以发现,该gem仅支持按ID(保留创建顺序)或不排序进行排序。这是从源代码看出来的。
现在有一个pull request允许按名称或任何其他属性排序,但该gem的开发似乎停滞不前(该pull request已经开放了一年多)。也许您可以在那里询问此pull request的状态。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接