gpt4 book ai didi

ruby-on-rails - Rails Enum 返回整数值,而不是字符串表示

转载 作者:行者123 更新时间:2023-11-29 14:08:03 26 4
gpt4 key购买 nike

我有一个表,其中包含一个基于整数的列(状态),我将其用于 Rails 模型中的枚举属性。

在做的时候:

Post.select(:id, ..., :status)

定义为:

enum status: { inactive: 0, active: 1, ... }

它按预期返回所有内容,但状态列在其字符串值中返回为 inactiveactive 等。但我需要它作为整数。

我怎样才能得到它?

我目前只是在使用 ActiveRecord::Base.connection.execute 并传递原始查询:

ActiveRecord::Base.connection.execute('select id, ..., status from posts')

最佳答案

这不是最优雅的方式,但这是我认为无需遍历对象的唯一方式。

您可以像这样创建 2 个类来实现此目的:

class Post < ApplicationRecord
end

还有一个:

class PostSave < Post
enum status: { inactive: 0, active: 1, ... }
end

有了这个,当你使用 Post 类时,你不会得到“status”列的 enum 值,但是当你使用 PostSave 类时你可以像你已经使用的那样使用你的enum

当你这样做的时候

Post.select(:id, :status)

它会根据需要为“状态”列提供整数值。

关于ruby-on-rails - Rails Enum 返回整数值,而不是字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022433/

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