首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对嵌套属性进行排序

对嵌套属性进行排序
EN

Stack Overflow用户
提问于 2020-06-06 03:15:04
回答 1查看 52关注 0票数 0

我希望对嵌套属性进行排序:

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

代码语言:javascript
复制
has_many :budget_items, dependent: :destroy

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

代码语言:javascript
复制
f.simple_fields_for :budget_items do |i|
  ...
end

在我看来,默认情况下,活动记录默认按updated_at属性排序。

我以前曾尝试过这种方法,并尝试过这种方法:

代码语言:javascript
复制
f.simple_fields_for :budget_items, @budget.budget_items.order(:some_attribute) do |i|
  ...
end

这一类的工作,但打破了自动表单域验证css更改。通常情况下,如果我将嵌套字段留空,等等,当表单验证失败时,字段会突出显示为红色,等等。如果传入可选集合,嵌套表单可以工作,但是验证失败。

我有一次灵光一现的时刻,我尝试了一下:

代码语言:javascript
复制
  has_many :budget_items, -> { joins(...).order(..) }, dependent: :destroy

基本上是在关联中添加一个带订单的作用域。在我的例子中,我的命令是一个复杂的命令,但它只在开发中有效。一旦我将其部署到生产环境中,顺序似乎完全是随机的,而不是通过updated_at

这里发生了很多事情--最大的问题是,为什么这种工作在开发中是完美的,然后在生产中就会崩溃?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-06 04:18:07

我使用的解决方案实际上是有效的,即-> {} scope方法。在深入研究了join ->的顺序之后,我得到的结果实际上是问题所在。我的开发环境中的虚拟数据不足以让我看到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62222653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档