文字列の配列があります:
arr = ["2.1", "2.2", "2.2.1", "2.2.10", "2.2.2", "2.10"]
を使用するarr.sort
と、結果は次のようになります。
["2.1", "2.10", "2.2", "2.2.1", "2.2.10", "2.2.2"]
私は欲しい:
["2.1", "2.2", "2.2.1", "2.2.2", "2.2.10", "2.10"]
どうすれば正しく並べ替えることができますか?
質問2:
「2.1a」や「0.9b」などの「アルファ」または「ベータ」タイプの文字を並べ替えるにはどうすればよいですか。
質問3:
default_scope :order => ...
そのような数値を含む文字列のフィールドタイプを持つアクティブなレコードの配列がある場合、モデルに設定するのは実際ですか?sort_by{|a| a.split('.').map &:to_i }
または
次のようなモデルでメソッドを作成します
def my_sort
#sorting
end
このため:
Block.all.my_sort