我有3个表,Activity,Activity_type和Itineraries。在活动类型中,我插入一个新的条目名称=>测试=>例。在我的活动中,我可以使用我在下拉列表中创建的活动类型并键入位置。
在创建新行程时,会有一个下拉活动和用户(创建新行程并选择特定行程的活动),但它只显示活动#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
答案 0 :(得分:1)
在您的模型中定义方法title
或name
,如下所示,
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