Rails STI 验证继承

发布于 2024-10-11 04:17:45 字数 302 浏览 2 评论 0原文

我的 Rails 应用程序中有 STI 模型。祖先模型使用 validates_... 方法进行验证,该方法运行良好。

但我也有自定义验证,并且我想在后代中添加更多不同的自定义验证。这些自定义验证取决于类。

如果我写

class DescendantA < Ancestor

  protected
    def validate
      # ...
    end
end

它只是覆盖原始验证,所以我失去了原始继承的验证。

Rails 中有这样做的约定吗?

I have STI models in my Rails application. The ancestor model has validations with the validates_... methods which are working fine.

But I have custom validations as well, and I would like to add more different custom validations in the descendants. These custom validations would depend on the class.

If I write

class DescendantA < Ancestor

  protected
    def validate
      # ...
    end
end

It simply overwrites the original validations, so I loose the original inherited validations.

Is there a convention to do this in Rails?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝海似她心 2024-10-18 04:17:45

在子级的 validate 方法末尾添加 super 还不够吗,这样父级的 validate 方法也会被调用?

Would it not be sufficient to add super at the end of the validate method in the child, so that the parent's validate method would also be called?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文