ruby 如何更改标记列选择选项

lf5gs5x2  于 2023-06-05  发布在  Ruby
关注(0)|答案(2)|浏览(117)

我有一个标签列中的活动管理索引页一样

tag_column :result, interactive: true, sortable: false

在我模型中,我有一个结果枚举

enum result: { winner: 0, first_runner_up: 1, second_runner_up: 2}

在索引页面中,当我点击下拉菜单时,选择选项显示为

赢家
first_runner_up
第二名

我们如何将它们显示为

赢家
亚军
亚军

谁能帮帮我...先谢谢你了

imzjd6km

imzjd6km1#

我建议你把这些规则打破。那么你以后就可以自由地验证它们了

WINNER_OPTIONS = {
  winner: {
    title: "Winner"
  },
  second: {
    title: "First Runner Up"
  },
  third: {
    title: "Second Runner Up"
  }

RESULT_ENUMS = WINNER_OPTIONS
  .keys
  .with_index
  .to_h

enum result: RESULT_ENUMS

tag_column :result, WINNER_OPTIONS.values.map{|e| e[:title]}.with_index.to_h
mjqavswn

mjqavswn2#

那么一个帮助器方法,它将获得结果并根据您的格式返回数据,怎么样?
在活动管理模型中添加一个Helper方法,用于以您的格式显示枚举值
在活动管理模型文件中

tag_column :result, interactive: true, sortable: false do |#your_model|
    modify_data(your_model.result)
  end

像这样的helper方法来定制结果名称的显示

def modify_data(result)
    case result.to_sym
    when :winner
      'Winner'
    when :first_runner_up
      'First Runner Up'
    etc.. 
  end

结束

相关问题