ActiveAdmin表单(新/编辑)belongs_to关联?

时间:2012-04-14 11:03:49

标签: ruby-on-rails activeadmin

我在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

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

3 个答案:

答案 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]}