提问人:S Mares 提问时间:11/15/2023 最后编辑:AlexS Mares 更新时间:11/15/2023 访问量:64
Rails 控制器更新从值中减去 1
Rails Controller update subtract 1 from value
问:
如何在 Rails 控制器中的值中减去 1,这在 Postgresql 中很容易
Update junkcars
Set junkcartotal = junkcartotal -1
Where id = 5161
在导轨控制器中,我尝试过
Junkcars.update(junkcartotal: junkcartotal -1).where(id: 5161)
我得到的只有错误。
答:
0赞
Benjamin Scharbau
11/15/2023
#1
@junk_car = Junkcar.find(5161)
@junk_car.update(junkcartotal: @junk_car.junkcartotal - 1)
评论
0赞
dennis
11/15/2023
请注意,在 update 方法中使用也引用自身的计算,因为它可能会创建一个争用条件,在该条件中,它会两次更新到相同的值。请改用该方法decrement!
0赞
Benjamin Scharbau
11/15/2023
有趣的是,以前从未遇到过这种情况。你有这个链接吗,我可以在其中阅读更多关于这个技术细节的信息?
1赞
dennis
11/15/2023
当然:fastruby.io/blog/rails/code-quality/......
2赞
Alex
11/15/2023
#2
在轨道上也很容易:
Junkcar.find(5161).decrement!(:junkcartotal)
https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-decrement-21
评论