gpt4 book ai didi

ruby-on-rails - rails 3 : What is the correct Rails way of doing custom types?

转载 作者:行者123 更新时间:2023-12-03 16:20:43 24 4
gpt4 key购买 nike

我现在在 Ruby on Rails 上做一个相当复杂的模型,我想知道为属性做“自定义类型”的正确“Rails”方式是什么。例如,我有一张表 businesses具有字符串属性 region .但是 region 只能是预定义的可能性列表之一(以后可以扩展)。我的问题是:我在哪里定义这个区域类型?

我知道我可以制作一个具体的 regions可以容纳所有选项的表(即区域模型),然后我可以在具有该表的区域的模型之间建立关联。问题是我的模型上有很多这些类型,所以我的数据库中超过一半的表是“自定义类型表”,只存储这些类型的可能值。那实用吗?

我还读到您可以通过验证来做到这一点(即在保存记录时验证变量是否在可能的值内)。这似乎很不切实际,因为我想让这个模型可扩展,并且表单 View 需要将类型的可能值加载到选择框等中。如果我使用这种方法,每次我需要为一个新的可能值添加一个类型,我必须更改验证和 View 。

有没有做这种事情的标准方法?像定义类型(也许没有数据库支持的模型?)这样我可以轻松列出所有可能的值?

感谢您对此提供任何帮助或建议。在做 RoR 应用程序时,它一直困扰着我很长时间,我厌倦了围绕它进行黑客攻击。

最佳答案

我想有很多不同的方法可以做到这一点。就我个人而言,我会让事情变得非常简单和干燥。

在初始化器中,在全局范围内设置数组:

REGIONS = ["region A", "region B", "region C"]

在模型中,使用您编写的验证。检查该值是否在 REGIONS 中大批。

在 View 中,使用 Rails 助手来填充 REGIONS 中的选择、 radio 等。大批。如果您总是有相同的选择,请编写您自己的帮助器 region_select 例如。

关于ruby-on-rails - rails 3 : What is the correct Rails way of doing custom types?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9825653/

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