seb*_*seb 4 postgresql ruby-on-rails ruby-on-rails-6
我有一个表,其中包含一个基于整数的列(状态),我将其用于 Rails 模型中的枚举属性。
在做的那一刻:
Post.select(:id, ..., :status)
Run Code Online (Sandbox Code Playgroud)
定义为:
enum status: { inactive: 0, active: 1, ... }
Run Code Online (Sandbox Code Playgroud)
它按预期返回所有内容,但状态列在其字符串值中返回为inactive、active等。但我需要它作为整数。
我怎样才能得到它?
我目前只是使用ActiveRecord::Base.connection.execute并传递原始查询:
ActiveRecord::Base.connection.execute('select id, ..., status from posts')
Run Code Online (Sandbox Code Playgroud)
你试过这个吗?
# Rails < 5
post = Post.find(123)
post.read_attribute(:status)
# Rails >= 5
post = Post.find(123)
post.read_attribute_before_type_cast(:status)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5115 次 |
| 最近记录: |