gpt4 book ai didi

ruby-on-rails - 使用字符串轮廓符号订购 Rails 模型

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:07 26 4
gpt4 key购买 nike

我有一个 Rails 模型,用户想要排序的主要字段是一个以点符号格式存储为字符串的行项目(即:2.1.42.1.4.12.1.4.5 等)。按字母顺序排序效果很好,除了 2.1.4.10 按字母顺序排在 2.1.4.2 之前。我想称之为“基于点的数字顺序”会将 2.1.4.10 放在 2.1.4.9 之后,而 2.4.1.10.1 会在 2.4.1.11

之前

问题是:根据“基于点的数字顺序”,Rails Way™ 是什么来设置模型的默认顺序,以便行项目以正确的顺序显示。

假设一个简单的情况:

class LineItem < ActiveRecord::Base
validates :line_item, :presence => true, :uniqueness => true
end

并且 :line_item 是一个字符串。

最佳答案

我假设您使用的是 PostgreSQL,如果您真的想为您的模型设置默认顺序,请将此 default_scope 添加到您的 LineItem 模型:

default_scope -> { order("STRING_TO_ARRAY(line_item, '.')::int[] ASC") }

否则我建议你使用命名范围,它可以被覆盖和链接:

scope :version_order, -> { order("STRING_TO_ARRAY(line_item, '.')::int[] ASC") }

关于ruby-on-rails - 使用字符串轮廓符号订购 Rails 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863305/

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