在Ruby中,我可以按照发票编号降序对一些对象进行排序,比如:
@app.sample_sales.sort_by {|sale| -sale.payload['invoice_number'].to_i }
然而,我无法使用Rails:使其正常工作
@app.sample_sales.order("payload->'invoice_number' desc")
我也试过:
@app.sample_sales.order("payload->'invoice_number::integer' desc")
型号
#sample_app.rb
class SampleApp < ApplicationRecord
has_many :sample_sales, dependent: :destroy
end
#sample_sale.rb
class SampleSale < ApplicationRecord
belongs_to :sample_app
end
您的语法不正确。这里有一个好的:
@app.sample_sales.joins(:payload).order('payload.invoice_number desc')
当你分享了你的模型的关联后,我可能会更新这个答案。