gpt4 book ai didi

ruby-on-rails - 使用单表继承 (STI) 时验证类型的正确方法是什么?

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

我正在尝试对我的某些模型使用单表继承。基本模型是锦标赛,我希望扩展它以创建不同类型的锦标赛。例如,我可能想添加一个 SingleEliminationTournament 或一个 DoubleEliminationTournament,它们都将从 Tournament 继承。我有两个问题,它们都有些相关。

1) 我希望用户能够创建带有表单的锦标赛,为此他们需要选择一个子类。有没有办法获取所有子类并使用它们来填充选择框或类似的东西?

2)由于此信息将进入表单,因此能够验证输入的类型会很好。为此,我想在 Tournament 类中添加一个验证,该验证可以检查以确保类型有效。

显然,我可以将值硬编码到验证和表单中,但我不想这样做。任何帮助,将不胜感激。谢谢!

最佳答案

您可以创建一个包含锦标赛的目录并使用 Dir.glob('app/tournaments/**/*_tournament.rb') 加载它们。 .这为您提供了一个很好的所有锦标赛列表 文件 你已经指定了。由于惯例,您可以为每个锦标赛推断正确的类名称。

将此锦标赛名称列表存储在某处以供您在验证和表格中引用。

关于ruby-on-rails - 使用单表继承 (STI) 时验证类型的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184035/

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