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_selectname属性がラベルidとして、 が値として指定された が得られます。sa 入力タイプを渡した場合はinput、そのタイプとして強制的に表示されます。

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 に答える