2017-05-29 83 views
0

顯示的名稱,而不是一個ID的我有3個表,活動,ACTIVITY_TYPE和路線。在活動類型中,我插入一個新的條目名稱=>測試=>示例。在我的活動中,我可以使用之前在我的下拉列表中創建的活動類型並鍵入一個位置。我怎樣才能不名稱列

在創建新行程中,有一個下拉活動和用戶(創建新行程並選擇特定行程的活動),但僅顯示活動#1和用戶#1。在我的列表中,我認爲這就是爲什麼它只顯示活動#1而不是測試。

問:

1)創建一個新的行程安排我怎麼能更改活動#1的特定名稱(例如:在下拉菜單中應該沒有測試活動#1)

2)如何顯示名稱而不是沒有名稱列的ID?

活動表

activity_type_id 
location_id 

行程表

title 
created_by 

活動類型表

name 
description 

注:我阿爾斯Ø下面試過,但什麼都沒有發生

Rails的管理

config.model Itinerary do 
list do 

    field :title 
    # field :schedule 
    field :no_of_days 
    field :activity 
    field :user  
    # field :location  
    # field :activity_type 
    # field :location_name 
end 
create do 
    field :title  
end 
object_label_method do 
    :activity_label_method 
    end 
    def activity_label_method 
    "#{self.activity_type_id}" 

    end 

行程模式

class Itinerary < ApplicationRecord 
    belongs_to :user, foreign_key: :created_by 
    belongs_to :activity 
    has_many :activity_itineraries, foreign_key: :created_by 

    validates :user, presence: true 
    validates :title, presence: true, length: { maximum: 20 } 
    validates :no_of_days, presence: true, 
       :numericality => true 


    def name 
    activity_type.name 
    end 

end 

回答

1

定義在您模型的方法titlename如下,

def name 
    activity_type.name 
end 
rails_admin.rb

,(你可能需要修改根據你的模型關聯,它僅僅是從評論從這個thread概念)

field :activity_type_id, :enum do 
    enum do 
    Activity.collect {|act| [act.name, act.id]} 
    end 
end 
+0

爲什麼不公開?請嘗試在上面寫上。 –

+0

檢查更新 –

+0

先加'.all'。 'Model.all.collect ...',如果你有很多列,這個查詢會更加優化:'Model.select([:name,:id])。collect..' –