我在Ruby on Rails上使用Active Admin gem。 我有模块Team和Coach,它们具有has_many和belongs_to关系。
class Team < ActiveRecord::Base
belongs_to :coach
end
class Coach < ActiveRecord::Base
has_many :teams
end
我想出了如何在索引和显示页面上显示名字和姓氏(我是这样做的):
index do
column :name
column "Coach" do |team|
team.coach.firstname + " " + team.coach.lastname
end
default_actions
end
我想要的是如何在下拉菜单中以团队形式(新建和编辑页面)显示教练的名字和姓氏? 请帮我解决一下这个。
答案 0 :(得分:7)
你能试试吗
f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname, u.id]}, :include_blank => false
答案 1 :(得分:4)
我遇到了同样的问题。编辑页面在选择菜单中显示对象实例,例如
#<Coach:0x00eff180c85c8>
要解决它并访问每个实例的字段,请使用
form do |f|
f.inputs "Coaches" do
f.input :name
f.input :coach, member_label: Proc.new { |c| "#{c.firstname} #{c.lastname}"
end
f.actions
end
ActiveAdmin使用Formtastic,其documentation有更多示例。
此stackoverflow answer帮助我解决了这个问题。
答案 2 :(得分:3)
试试这个:
f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname.to_s, u.id]}