I have these associations:
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
Now, I would like to customize the ActiveAdmin form for "Signup", so it shows the title of the courses and the name of the users as a select and not as a textfield.
The default form already does that, however I need to customize the form further and I can't reproduce the default form.
Your form block will look something like this in your admin/signups.rb
:
form do |f|
f.input :course
t.input :user
end
By default, since course
and user
are associations, this should give you a collection_select
- that is, a with the name
attribute of your models as labels, id
s as values. If you had passed your input
s a input type, this will force them to display as that type.
form do |f|
f.input :course, :as => :string
end
This'll just give you a course_id
text input field, where you'll probably just enter the ID for the associated object. To "reproduce the default form", just continue adding input
s for the relevant attributes. You can even wrap them in f.inputs
to group them and make things look pretty.
form do |f|
f.inputs "Basic Details" do
f.input :course
f.input :user
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With