【问题标题】:skip validation in parent class跳过父类中的验证
【发布时间】:2020-10-01 15:36:26
【问题描述】:
我有一些从 A 派生的课程。
A 做一些验证
在从 A 继承的 B 类的特定情况下,我想跳过验证。
顺便说一句,我正在使用主动交互
class A < ActiveInteraction::Base
string :s
validate :valid
private
def vaild
#raise something unless s equals "banana"
end
end
class B < A
#do something here to skip A's validation??
def execute
#super cool logic
end
end
【问题讨论】:
标签:
ruby-on-rails
ruby
validation
【解决方案1】:
由于这是一个子类,你可以重写valid 方法来做别的事情,甚至是什么都不做:
class B < A
def execute
#super cool logic
end
private
def valid
# Do nothing
end
end
【解决方案2】:
您可以添加一个回调来选择性地跳过验证:
class A < ActiveInteraction::Base
string :s
validate :valid, unless: :skip_validation
private
def vaild
# raise something unless s equals "banana"
end
def skip_validation
false
end
end
class B < A
def execute
#super cool logic
end
private
def skip_validation
true # or more fancy logic
end
end