使用act-as-taggable-on gem对关联进行排序

时间:2014-08-05 13:26:54

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

我正在尝试使用acts-as-taggable-on gem动态排序Posts :type表。

让我们说我的Post对象有3列:用户,标题和日期。我可以通过放入我的控制器@entries = Post.order(sort_column + " " + sort_direction).page(params[:page])

轻松地对Post表进行排序

sort_columnsort_direction被称为:

def sort_column
  Post.column_names.include?(params[:sort]) ? params[:sort] : "published_at"
end

def sort_direction
  %w[asc desc].include?(params[:direction]) ? params[:direction] : "desc"
end

但是,Post也可以附加类型。在我的Post模型中,我有:

acts_as_taggable
acts_as_taggable_on :types 

在我的观点表中,我只是通过写:

来显示标签

视图/帖/ _posts.html.slim

...
td.tags = entry.type_list.first.titleize unless entry.type_list.blank?
...

是否有一种简单的方法按类型按字母顺序对表格进行排序

1 个答案:

答案 0 :(得分:2)

acts-as-taggable-on gem增加了多态关联。您可以充分利用Active记录。

你必须做这样的事情。这将以post的顺序提供alphabetical

Post.includes(:taggings).joins(:types).order("tags.name")

希望这有帮助。