6

我将 Active Admin gem 用于 Ruby on Rails。我有模块 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

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

4

3 回答 3

7

你能试试这个

f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname, u.id]}, :include_blank => false
于 2012-04-18T07:35:52.550 回答
5

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

#<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,它的文档有更多示例。

这个 stackoverflow答案帮助我得到了这个解决方案。

于 2014-01-06T20:56:41.070 回答
3

尝试这个:

f.input :coach_name, :as => :select, :collection => Coach.all.map {|u| [u.firstname.to_s, u.id]}
于 2014-01-08T05:52:46.473 回答