0

我有一个教师模型,它在视图中显示教师列表,但我希望学校的负责人总是在视图中的顶部,其次是他们的助手,最后是教师。

如何通过表单添加自定义排序?也许有任何 javascript 插件可以在列表中移动或向下移动教师?

4

2 回答 2

2

通常,您可以通过执行以下两个步骤来定义 Ruby 类的实例之间的排序:

  1. include Comparable在类定义中。
  2. 定义一个<=>采用单个参数的方法,该参数是该类的另一个实例。如果应该认为接收者 ( self) 大于另一个对象,则此方法应该返回 1,如果应该认为它更小,则返回 -1,如果它们相等,则返回 0。

这不是 ActiveRecord 特定的,但我看不出它为什么不适用于 ActiveRecord 类。

于 2013-04-07T18:25:57.177 回答
1

最简单的方法是创建一个“组”属性。所以:

你的校长是小组 => 1
你的助手是小组 => 2
你的老师是小组 => 3

然后,类似的东西Employee.order(:group).order(:last_name)会按您的组排序,然后按姓氏排序。

要拥有自定义订单,请将其添加为您的次要排序。

于 2013-04-07T18:31:13.707 回答