Rails:使用连字符对ActiveRecord进行排序

时间:2015-01-26 18:40:26

标签: ruby-on-rails rails-activerecord

我有一个像这样的简单查询:

ContactForm.where(:is_active => true).order(:name => :asc)

但是我希望我的一条记录始终首先显示,所以我用一对连字符作为前缀" - "但是,order子句不会将该记录交换到第一位,事实上它还处于中间位置,因为它不会有那些连字符。

可能会发生什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

我建议您创建另一个列而不是使用该方法。您可以使用名为priority的列,默认为0

add_column :contact_form, :priority, :integer, default: 0

然后,您可以使用此代码(假设您已使用1标记了优先级记录):

ContactForm.where(:is_active => true).order(:priority, :name => :asc)