按字母顺序排序标签使用Acts作为Taggable On

时间:2015-03-13 10:41:37

标签: ruby-on-rails ruby-on-rails-4 tags acts-as-taggable-on

我使用acts-as-taggable-on来标记我的NewsItem和MediaItem模型。默认情况下,使用tag_list访问模型标记以获取标记名称数组,或直接通过使用tags进行关联来收集ActsAsTaggableOn::Tag s,从而生成标记以任意顺序。我希望他们永远是字母表。文档中没有提及设置默认订单,除了维护标签创建顺序的方式(通过在模型中使用acts_as_ordered_taggable)。

显然我每次使用tags拨打news_item.tags.order(:name)时都可以订购它们,但我希望这是整个应用程序的默认行为,并且不想在任何地方重复订购需要使用标签。

如何设置模型以使其tags关联始终按字母顺序返回其标记?

1 个答案:

答案 0 :(得分:6)

我担心这种排序无法在当前版本的act-as-taggable-on gem中完成。从source code可以明显看出,这个gem实际上只支持按ID排序(保留创建顺序)或根本不支持排序。

有一个pull request open允许按名称或任何其他属性进行排序,但是宝石开发的活动现在看起来很陈旧(拉取请求已经开放了一年多)。也许您可能会尝试询问此拉取请求的状态。