我正在尝试开发一个基本的rails_admin应用程序。我的用例有项目和学生。
class Project < ApplicationRecord
belongs_to student
end
class Student < ApplicationRecord
has_many projects
end
由于学生可以使用相同的名称,因此在创建项目时很难识别学生。
我需要结合学生的掷骰号码和名称,在下拉列表中形成一个唯一的条目。
因此,我希望Project
模型的视图能够将下拉列表中的学生列表显示为123 - John Doe
,而不仅仅是John Doe
。
答案 0 :(得分:2)
您需要定义方法标题
def title
"#{roll_number} - #{full_name}"
end
由于rails admin将尝试首先使用name方法然后使用title方法显示对象。
您可以像这样全局覆盖此行为:
RailsAdmin.config {|c| c.label_methods << :description}
这会将任何模型的方法描述设置为用于标记对象的模型。
你也可以像这样覆盖每个模型:
RailsAdmin.config do |config|
config.model 'Team' do
object_label_method do
:custom_label_method
end
end
def custom_label_method
"Team #{self.name}"
end
end