2017-05-29 181 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..' –