6

我有这些关联:

class Course < ActiveRecord::Base
  has_many :signup
  has_many :user, :through => :signup

  accepts_nested_attributes_for :signup
end

class User < ActiveRecord::Base
  has_many :signup
  has_many :course, :through => :signup

  accepts_nested_attributes_for :signup
end

class Signup < ActiveRecord::Base
  belongs_to :course
  belongs_to :user
end

现在,我想为“注册”自定义 ActiveAdmin 表单,因此它将课程的标题和用户的名称显示为选择而不是文本字段。

默认表单已经这样做了,但是我需要进一步自定义表单并且我无法重现默认表单。

4

1 回答 1

8

您的表单块在您的admin/signups.rb:

form do |f|
    f.input :course
    t.input :user
end

默认情况下,因为courseuser是关联,所以这应该给你一个collection_select- 即 a ,name你的模型的属性作为标签,ids 作为值。如果您传递了您的inputsa 输入类型,这将强制它们显示为该类型。

form do |f|
    f.input :course, :as => :string
end

这只会为您提供一个course_id文本输入字段,您可能只需在其中输入关联对象的 ID。要“重现默认形式”,只需继续input为相关属性添加 s 即可。您甚至可以将它们包裹起来以将它们f.inputs分组并使它们看起来很漂亮。

form do |f|
    f.inputs "Basic Details" do
        f.input :course
        f.input :user
    end
end
于 2012-08-16T23:48:04.600 回答