Rails:如何获取连接表的枚举值?

Raj*_*hra 5 activerecord ruby-on-rails

我有两个带有enum字段的模型:

class TempAsset < ApplicationRecord
  enum state: { running: 0, stopped: 1, terminated: 2 }
end

class AssetCredential < ApplicationRecord
  enum map_status: { pending: 0, inprogress: 1, passed: 2, failed: 3 }
end
Run Code Online (Sandbox Code Playgroud)

当我从第一个表中选择列时,它会从枚举中给出正确的值:

TempAsset
  .joins('INNER JOIN asset_credentials
          ON temp_assets.instance_id = asset_credentials.instance_id')
  .pluck(:state)
  .uniq
# ["stopped", "running"]
Run Code Online (Sandbox Code Playgroud)

但是,当我从连接表中选择列时,它会给出数字:

TempAsset
  .joins('INNER JOIN asset_credentials
          ON temp_assets.instance_id = asset_credentials.instance_id')
  .pluck(:map_status)
  .uniq
# [0, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

那么,我应该这样做:

AssetCredential.map_statuses.key(0) => "pending"
AssetCredential.map_statuses.key(1) => "inprogress"
Run Code Online (Sandbox Code Playgroud)

或者有没有更好的方法来做同样的事情?

dem*_*mir -1

尝试这个:

AssetCredential.joins('INNER JOIN temp_assets ON asset_credentials.instance_id = temp_assets.instance_id').pluck(:map_status).uniq
Run Code Online (Sandbox Code Playgroud)