2017-10-09 20 views
0

기본 rails_admin 응용 프로그램을 개발하려고했습니다. 나의 유스 케이스에는 프로젝트와 학생이있다.rails_admin belongs_to 관계가있는 드롭 다운 메뉴 사용자 정의

class Project < ApplicationRecord 
    belongs_to student 
end 

class Student < ApplicationRecord 
    has_many projects 
end 

학생들은 같은 이름을 가질 수 있으므로 프로젝트를 만드는 동안 학생을 식별하기가 어렵습니다. 학생의 롤 번호와 이름을 결합하여 드롭 다운에서 고유 한 항목을 형성해야했습니다. 따라서 Project 모델의보기에서 드롭 다운의 학생 목록을 123 - John Doe 대신 John Doe 대신 표시하고 싶습니다.

답변

1

당신은 관리자가 먼저 이름 방법 다음 제목 방법을 사용하여 객체를 표시하려고합니다 레일에있어서 제목을

def title 
    "#{roll_number} - #{full_name}" 
end 

를 정의 할 필요가있다.

당신은 전 세계적으로이 같은이 동작을 재정의 할 수 있습니다 하나가 객체에 레이블을 사용으로

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 

참조 : The object_label_method method