gpt4 book ai didi

ruby-on-rails - 如何在Rails STI衍生模型中禁用验证和回调?

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

给定一个模型

class BaseModel < ActiveRecord::Base
validates_presence_of :parent_id
before_save :frobnicate_widgets
end

和一个派生模型(基础数据库表具有 type字段-这是简单的Rails STI)
class DerivedModel < BaseModel
end
DerivedModel将以良好的OO方式继承 BaseModel的所有行为,包括 validates_presence_of :parent_id。我想关闭对 DerivedModel的验证,并防止触发回调方法,最好不要修改或破坏 BaseModel
最简单,最可靠的方法是什么?

最佳答案

我喜欢使用以下模式:

class Parent < ActiveRecord::Base
validate_uniqueness_of :column_name, :if => :validate_uniqueness_of_column_name?
def validate_uniqueness_of_column_name?
true
end
end

class Child < Parent
def validate_uniqueness_of_column_name?
false
end
end

如果Rails提供了skip_validation方法来解决这个问题,那将是很好的选择,但是这种模式可以正常工作并很好地处理复杂的交互。

关于ruby-on-rails - 如何在Rails STI衍生模型中禁用验证和回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/279478/

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