You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails Active Scaffold中language_id列表页显示ID而非名称的问题求解

解决Active Scaffold列表页显示language_id ID而非名称的问题

方法一:利用Active Record关联(推荐)

这是最符合Rails惯例的解决方案:

  1. 在MailTemplate模型中添加关联关系:
belongs_to :language
  1. 修改Active Scaffold的列表配置,将:language_id替换为:language:
config.list.columns = [:name, :language, :autocall_traitment_type]
  1. 确保Language模型定义了to_s方法(若未默认定义),让Active Scaffold自动渲染语言名称:
class Language < ApplicationRecord
  def to_s
    name
  end
end

方法二:自定义列的显示格式(无需修改列名)

如果不想替换列表列名,可以直接为:language_id列添加格式化逻辑:

config.columns[:language_id].formatter = lambda { |record|
  Language.find(record.language_id)&.name || record.language_id
}

额外提示:修复排序配置问题

你当前的排序配置存在重复赋值,最终只有最后一行的:name => 'ASC'会生效,应该合并为单一哈希:

config.list.sorting = {:language_id => 'ASC', :autocall_traitment_type => 'ASC', :name => 'ASC'}

内容的提问来源于stack exchange,提问作者jeanpil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:57:06