gpt4 book ai didi

ruby-on-rails - Ruby Sort ActiveRecord - float 像 float 一样存储为字符串

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:24 26 4
gpt4 key购买 nike

Ruby on Rails 4 - 将 ActiveRecord 字符串列排序为 float 。

我有一个带有版本列(字符串)的 RecordModel 表,用于存储版本。版本超过格式 major.minor version。问题是一个版本将从 9.0 跳到 10.0,但是因为它存储为字符串,所以我如何像整数一样对它进行排序?

RecordModel(id: integer, version: string, created_at: datetime, updated_at: datetime)

create_table "record_models", force: true do |t|
t.string "version"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

record_models = RecordModels.all
record_models.order(:version)

# results:
10.10
2.0
3.0

更新: - 数据库是postgresql - 我不能存储为 float ,因为有些版本值是空白的,有些是 x.x.x 形式的(例如 1.2.3)

最佳答案

我还没有对此进行测试,我不知道如果缺少未成年人它会如何表现,但我认为值得一试。

RecordModel.all.select('*,
split_part(version, '.', 1)::int as major,
split_part(version, '.', 2)::int as minor,
split_part(version, '.', 3)::int as patch'
).order(major: :desc, minor: :desc, patch: :desc)

这已更新以与 postgresql 一起使用

关于ruby-on-rails - Ruby Sort ActiveRecord - float 像 float 一样存储为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30107565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com