Luí*_*lho 6 ruby-on-rails activeadmin
我有这些联想:
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
Run Code Online (Sandbox Code Playgroud)
现在,我想为"注册"自定义ActiveAdmin表单,因此它显示了课程的标题和用户的名称作为选择而不是文本字段.
默认表单已经这样做,但是我需要进一步自定义表单,我无法重现默认表单.
您的表单块在您的内容中将如下所示admin/signups.rb
:
form do |f|
f.input :course
t.input :user
end
Run Code Online (Sandbox Code Playgroud)
默认情况下,由于course
和user
是关联,这应该给你一个collection_select
- 即,name
模型的属性作为标签,id
s作为值.如果您已经传递了input
sa输入类型,则会强制它们显示为该类型.
form do |f|
f.input :course, :as => :string
end
Run Code Online (Sandbox Code Playgroud)
这只会给你一个course_id
文本输入字段,你可能只需要输入相关对象的ID.要"重现默认表单",只需继续input
为相关属性添加s.您甚至可以将它们包装起来以将它们f.inputs
分组并使事物看起来很漂亮.
form do |f|
f.inputs "Basic Details" do
f.input :course
f.input :user
end
end
Run Code Online (Sandbox Code Playgroud)