gpt4 book ai didi

ruby-on-rails - 为模型创建状态属性

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:42 24 4
gpt4 key购买 nike

我想为我的 Task 模型创建一个 status 属性,该属性将按以下顺序指示它在三部分进度中的位置:打开 => 进行中 => 完成。它的工作方式类似于亚马逊包裹的交付方式:已订购 => 已发货 => 已交付。我想知道设置此属性的最佳方法是什么。我可能是错的,但创建三个独立的 bool 属性似乎有点多余。实现此目标的最佳方法是什么?

最佳答案

Rails 4 有一个内置的 enum macro .它使用单个整数列并映射到键列表。

class Order
enum status: [:ordered, :shipped, :delivered]
end

状态映射如下:{ ordered: 0, shipped: 1, delivered: 2}

它还创建范围和“审讯方法”。

order.shipped?
Order.delivered.all

在编写带有散列参数的查询时,它还会映射枚举值:

Order.where(status: [:shipped, :delivered])

关于ruby-on-rails - 为模型创建状态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964377/

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