私は3つのテーブルActivity、Activity_type、およびItinerariesを持っています。アクティビティタイプでは、新しいエントリ名=> Testing => Exampleを挿入します。私の活動では、以前に作成したアクティビティタイプをドロップダウンで使用して場所を入力できます。名前列のないIDの代わりに名前を表示するには
新しい旅程の作成には、ドロップダウン活動とユーザー(新しい旅程を作成し、特定の旅程の活動を選択した人)がありますが、活動#1とユーザー#1のみが表示されます。私のリストでは、これはなぜ、それがアクティビティ#1をテストの代わりに表示するだけの理由だと思います。
質問:?
1)私は特定の名前に活動#1を変更することができますどのように新しい旅程を作成する際に(例:ドロップダウンではない活動#1)
2テストする必要があります)名前列なしでIDの代わりに名前を表示するにはどうすればよいですか?
アクティビティテーブル
activity_type_id
location_id
旅程表
title
created_by
活動タイプテーブル
name
description
注:I ALS O以下、これを試みたが、何も
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
なぜ民間?上に書いてみてください。 –
更新を確認してください。 –
に '.all'を追加してください。 'Model.all.collect ...'とし、多くのカラムがある場合、このクエリはより最適化されます: 'Model.select([:name、:id])。collect..' –