在轨道上的红宝石定制订购

时间:2013-04-07 15:47:39

标签: javascript ruby-on-rails ruby

我有一个教师模型,在视图中显示教师名单,但我希望学校的校长将始终在视野中,他们的助手接下来和教师最后。

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

2 个答案:

答案 0 :(得分:2)

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

  1. include Comparable在类定义中。
  2. 定义一个方法<=>,它接受​​一个参数,这是该类的另一个实例。如果接收器(self)应被视为大于另一个对象,则此方法应返回1;如果应将其视为较小,则返回-1;如果它们相等则为0。
  3. 这不是ActiveRecord特定的,但我认为没有理由不应该为ActiveRecord类工作。

答案 1 :(得分:1)

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

你的校长是小组=&gt; 1
你的助手将是group =&gt; 2
你的老师会成为group =&gt; 3

然后,类似Employee.order(:group).order(:last_name)的内容将由您的群组排序,然后按last_name排序。

要获得自定义订单,请将其添加为辅助排序。