gpt4 book ai didi

ruby-on-rails - Rails3 : Defining enum and using it as a custom type for db column

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

rails 的新手,所以不确定最好的方法是什么。我想定义一个简单的 C++ 样式枚举,然后可以将其用作我的数据库中的自定义类型。可以使用数组或自定义模块来模拟枚举,但我该如何将其转换为我的表的自定义类型?

最佳答案

这是我在 rails 中遵循的模式:

在我的模型类中,我添加了一个 module 来保存列的可能值。然后我将它们放入一个数组中,并针对可能值的数组定义验证。

假设我有一个名为 status 的列/属性,它可以是三个可能的值。我会这样做:

class MyModel < ActiveRecord::Base

# This validates that status can't be null
validates :status, :presence => true

# Define a module with all possible values
module Status
IN_DEVELOPMENT = 'in development'
DISABLED = 'disabled'
ACTIVE = 'active'
end

# Now create an array of possible status values, and add a validation
STATUSES = [ Status::DISABLED, Status::ACTIVE, Status::IN_DEVELOPMENT]
validates :status, :inclusion => { :in => STATUSES, :message => "%{value} is not a valid status value" }

end

关于ruby-on-rails - Rails3 : Defining enum and using it as a custom type for db column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842755/

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