如何将一个模型的记录分配给活动管理员中的另一个关联记录?

时间:2019-01-30 03:51:21

标签: ruby-on-rails activeadmin has-and-belongs-to-many

我有一个应用程序,可以将申请人注册为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。

2 个答案:

答案 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永远不会发送。