gpt4 book ai didi

ruby-on-rails-3 - 如何 "lock"一条记录不被更新或删除?

转载 作者:行者123 更新时间:2023-12-05 00:37:13 25 4
gpt4 key购买 nike

我有一个模型 User它自动有一个 Task生成。

我想禁止编辑或删除此任务。

我需要对我的 Controller 进行哪些修改?是否有一个优雅的解决方案,或者我是否需要在每次编辑/销毁时检查它是否是有问题的任务。

最佳答案

您可以使用验证来很好地做到这一点。

class Thing < ActiveRecord::Base
validate :locked_cannot_be_modified

private

def locked_cannot_be_modified
errors.add(:base, "Entry is locked") if changes.any? && whatever_logic_makes_it_locked
end
end

或者,您可以实现只读?在模型上:
class Thing < ActiveRecord::Base
def readonly?
whatever_logic_makes_it_locked || super
end
end

这种方法将引发异常而不是验证错误。我想这取决于你想要做什么,哪种方法更好。

关于ruby-on-rails-3 - 如何 "lock"一条记录不被更新或删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183740/

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