Как назначить запись одной модели другой связанной записи в активном администраторе? - PullRequest
0 голосов
/ 30 января 2019

У меня есть приложение, которое регистрирует кандидатов как 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 в активном администраторе, единственным полем является яв состоянии заполнить это: описание.

Я бы хотел назначить новую группу одному или нескольким: member_id.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

написать пользовательскую форму в admin/groups.rb, чтобы принять несколькоidid_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
0 голосов
/ 30 января 2019

У меня недостаточно репутации, чтобы комментировать ваше сообщение, поэтому я задам вопрос в качестве ответа и отредактирую его позже.

Можете ли вы проверить журналы сервера и посмотреть, какие данные отправляютсяк действию создания?Если бы мне пришлось угадывать, participant_id никогда не отправляется.

...