gpt4 book ai didi

ruby-on-rails - rails : corret way of validate number of records

转载 作者:行者123 更新时间:2023-12-04 05:31:57 25 4
gpt4 key购买 nike

在我的例子中,user 有很多 categories,我想阻止用户删除他的最后一个 category,这就是我所做的在 Categories#destroy 中:

  def destroy
if current_user.categories.count > 1
@category.destroy
redirect_to categories_url
else
flash[:category_notice] = "Cannot destroy the last category"
redirect_to categories_url
end
end

显然,这解决了问题。但我想知道是否有正确的方法来做到这一点?或者这样就好了?

最佳答案

我更愿意在模型中执行此操作(这样您也可以在控制台上工作时防止破坏最后一条记录)。对于前任,您可以使用 callback在您的类别模型中:

before_destroy: check_if_last

def check_if_last
raise "Can't destroy last category!" if self.user.categories.count == 1
end

编辑:为避免用户对象出现竞争条件,locking应该做的。

关于ruby-on-rails - rails : corret way of validate number of records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946152/

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