问题描述
我正在使用Ruby on Rails构建成员资格Web应用程序。我设置了数据库以及表之间的关系,一切正常。我决定使用Active Admin来简化仪表板的创建以及提供良好的搜索功能。
我当前的问题是在下拉列表和下拉列表中的Active admin中,外键仅显示ID号和引用地址(对不起,我忘记了它们的实际名称)。
解决方法
自定义ActiveAdmin索引过滤器> Change The String Representation
以上文章解释了类似的问题。您必须在管理页面中执行类似的操作才能获得会员资格。
filter :plan,collection: -> {
Plan.all.map { |plan| [plan.name,plan.id] }
}
我以name
属性作为计划的示例。您可能具有不同的属性,请使用正确的属性来反映详细信息。
更新
基于@ DevOps92 answer
另一种实现方法是在:display_name,:full_name,:name,:title,:to_s
模型中设置任何方法Plan
,对于关联列,我们通过按以下顺序调用以下方法来对要显示的内容进行有根据的猜测:
:display_name,:full_name,:name,:username,:login,:title,:email,:to_s
可以在config / initializers / active_admin.rb中对其进行自定义。
当我通过脚手架在数据库中创建表时,我通过使用Rails生成的模型解决了该问题。 App / models / plan.rd并使用方法display_name。在display_name方法中,我列出了计划表中的列名。因此,遇到类似问题的任何人都应检查您的Rails模型。 My Solution