2012-04-14 85 views
6

我对Ruby on Rails使用Active Admin gem。 我有模块Team and Coach,它们有has_many和belongs_to的关系。ActiveAdmin表单(新/编辑)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 

我要的是如何显示名字和姓氏团队形式(新的和编辑页面)的教练在下拉菜单中? 请帮我这个。

回答

7

你可以试试这个

f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname, u.id]}, :include_blank => false 
3

我有同样的问题。编辑页面显示对象实例的选择菜单,例如,

#<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帮助我得到这个解决方案。

3

试试这个:

f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname.to_s, u.id]}