2017-10-09 9 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

関連する問題