订购嵌套属性

问题描述 投票:0回答:1

我正在订购嵌套属性:

我有一个带有嵌套属性的Budget模型:

has_many :budget_items, dependent: :destroy

我使用的是simple_form gem和一个基本的嵌套属性表单,它们工作得很好:

f.simple_fields_for :budget_items do |i|
  ...
end

默认情况下,在我看来,Active Record默认为按updated_at属性排序。

我之前涉足此方法并尝试过这种方法:

f.simple_fields_for :budget_items, @budget.budget_items.order(:some_attribute) do |i|
  ...
end

这类工作,但破坏了自动表单字段验证CSS更改。通常,如果我将嵌套字段保留为空白等,则当表单验证失败时,字段将突出显示为红色等。如果传递可选集合,则嵌套表单有效但验证失败。

我尝试了此过程时遇到了一个灯泡时刻:

  has_many :budget_items, -> { joins(...).order(..) }, dependent: :destroy

基本上在关联中添加具有顺序的范围。就我而言,我的订单很复杂,但可以使用-仅在开发中。一旦将其部署到生产环境中,与updated_at相比,订单似乎是完全随机的。

很多事情在这里-最大的问题是,为什么这项工作在开发中会完美无瑕,然后在生产中分崩离析?

ruby-on-rails rails-activerecord simple-form
1个回答
0
投票

我正在使用的解决方案实际上有效,即-> {}作用域方法。经过一番挖掘->顺序我实际上是问题。我在开发环境中拥有的虚拟数据不足以让我看到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.