我有一个应用程序,可以将申请人注册为Participants
,然后将其分配给Groups
。这两个模型通过has_and_belongs_to_many
关系关联。还有其他与Participant
相关的悬挂模型,但是它们未连接到Groups
。
在活动管理员中创建新的Participant
时,我希望能够将Group
分配给Group
。
我的两个模型通过名为matchups
的联接表联接。
我的Group
模型架构如下:
create_table "groups", force: :cascade do |t|
t.string "description"
t.integer "participant_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["participant_id"], name: "index_groups_on_participant_id"
end
我的Participant
模型架构如下:
create_table "participants", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.date "birthdate"
t.string "email"
t.string "phone"
t.string "street_name"
t.string "city"
t.string "state"
t.string "zip"
t.string "role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "gender"
end
我的活动管理员资源允许以下参数:
对于Groups
:
permit_params :id, :description, :participant_id, :student_detail_id, :volunteer_detail_id
对于Participants
:
permit_params :id, :first_name, :last_name, :gender, :email, :birthdate, :phone, :street_name, :city, :state, :zip, :role
当我要在活动管理员中创建新的Group
时,我唯一可以填写的字段是:description。
我想将新组分配给一个或多个:participant_id。
答案 0 :(得分:2)
在admin/groups.rb
中编写一个自定义表单,以接受如下所示的多个参与者ID
ActiveAdmin.register Group do
permit_params :description , participant_ids: []
form do |f|
f.inputs 'Group Details' do
f.input :description
f.input :participant_ids, as: :check_boxes, collection: Participant.all
end
end
end
答案 1 :(得分:0)
我的信誉不足,无法评论您的帖子,因此我将提出问题作为答案,并在以后进行编辑。
您可以检查服务器日志并查看将哪些数据发送到创建操作吗?如果我不得不猜测,participant_id
永远不会发送。