gpt4 book ai didi

html - 枚举和 View 集成的 Rails 替代品

转载 作者:搜寻专家 更新时间:2023-10-31 22:21:34 25 4
gpt4 key购买 nike

rails 不提供 ENUM 类型,但我确实需要一个只能接受五个值的数据成员。此外,我希望它与 Rails Forms Helper 自动集成:select_tag
我的情况的正确解决方案是什么?

P.S,如果存在内置且整洁的解决方案,我宁愿不使用外部插件。

最佳答案

我尽可能将此类功能放在使用它的地方。

如果值由单个模型使用,只需将它们保留在模型中,例如,如果用户有某些可能的类型,并且只有那些类型,它可能看起来像:

class User < ActiveRecord::Base
TYPES = %w{guest, paid, admin}

# Plus validation on the `type` field.
# Maybe plus a setter override that also validates.
end

当您需要在别处引用这些类型时,例如在选择中作为允许值:

User::TYPES

围绕这一点有许多有值(value)的调整,比如提供装饰器使它们“人类可读”(大写,间隔,等等)或元编程方法以允许这样的事情:

user.is_guest?   # Or...
user.make_guest! # Or...
user.guest!

我使用我自己的小 gem 来实现此功能,因为通常情况下,成熟的关联太多了,而且没有任何值(value)。它允许这样的事情:

class User < ActiveRecord::Base
simple_enum :user_type, %w{guest, paid, admin}
end

关于html - 枚举和 View 集成的 Rails 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16625208/

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