Trailblazer操作が継承によって定義されると、そのスーパークラスのコントラクトが継承されます。
class Create < Trailblazer::Operation
contract do
...
end
...
end
class Update < Create
...
end
継承された Trailblazer 操作のコントラクトは、そのスーパークラスによって定義された検証を変更できますか?
この疑問が生じたのは、作成操作のコントラクトが、更新操作でオプションにする必要がある必須プロパティを定義したためです。
validates :foo, presence: true
最初の考えは、継承されたクラスでこの定義を何らかの形で逆にすることでしたが、これを行う方法はないようでした(サブクラスのプロパティを無視するwriteable:false
ことは可能です( - book p61)が、方法がないようですその妥当性基準を変更します)。