【问题标题】:ActiveRecord order by array of strings [duplicate]ActiveRecord按字符串数组排序[重复]
【发布时间】:2019-12-13 01:38:21
【问题描述】:

如果我有一个数组,例如:['Apple','Orange','Pear']

如何通过实现“自定义排序”从模型中检索记录?例如,如果我想将fruit_type 列按OrangePearApple 排序怎么办?

不尝试按字母或数字排序,而是根据我正在寻找的自定义顺序。

【问题讨论】:

  • 您有两个选择,1. 自定义索引(位置),如提到的Eyeslandic,或 2. 自定义算法))

标签: ruby-on-rails activerecord rails-activerecord


【解决方案1】:

我认为最好的方法是用类似的东西创建一个新表

create_table :fruit_types do |t|
  t.string  :name
  t.integer :sort_order
  # .....
end

然后在你的模型中使用它

# model.rb
belongs_to :fruit_type

然后查询

Model.joins(:fruit_type).order('fruit_types.sort_order')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2015-03-16
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    相关资源
    最近更新 更多