gpt4 book ai didi

ruby-on-rails - 使用 Rails ActiveRecord 查询未保存的对象

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:13 24 4
gpt4 key购买 nike

是否可以使用 Rail 的 ActiveRecord 或其他类似方法查询未保存的更改?

下面是一个 Ruby 交互式 session 的示例。我想看到的是,第四行显示的结果是“999”而不是“10”。我习惯于使用 .NET 和 Entity Framework 来实现与此类似的功能。也许在 Ruby 中有更好或不同的方法来做同样的事情。我显然可以在循环中累加总和,但我发现查询语法更优雅。感谢您的帮助。

i = Inventory.where(:product_id => 1)
i.sum(:available) => 10
i.first.available = 999
i.sum(:available) => 10

最佳答案

不,因为 sum() 实际上被翻译成 SQL 并在 db 上运行,您必须将记录保存到 db 以便查询返回您想要的结果。

或者,您可以使用 Enumerable#sum ActiveSupport 中的方法,它需要一个 block ,如下所示:

all = Inventory.where(:product_id => 1).to_a
all.first.available = 999
all.sum(&:available)

关于ruby-on-rails - 使用 Rails ActiveRecord 查询未保存的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155837/

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