У меня есть 4 модели (здесь ничего не установлено). 1001 *
Class Member < ActiveRecord::Base
has_many :member_to_clubs
has_many :clubs, through :member_to_clubs
has_many :jobs, through :member_to_clubs
end
Class Club < ActiveRecord::Base
end
Class Job < ActiveRecord::Base
end
Class MemberToClub < ActiveRecord::Base
belongs_to :member
belongs_to :club
belongs_to :job
end
Участники могут быть в нескольких клубах. Участники могут иметь несколько рабочих мест в клубах (один и тот же человек может быть президентом, казначеем и т. Д. c.).
Как лучше всего настроить форму / контроллер, чтобы создать их в одной форме? Мой идеальный сценарий - иметь форму, похожую на следующую, и у меня есть полуработающая реализация.
Клубы выбраны из раскрывающийся список, а затем задания назначаются из мульти-выбора. Есть ли "рельсовый способ" сделать это? Я попытался сделать полностью пользовательскую реализацию, где форма отправляет следующие параметры
"member"=>{"Name"=>"John Smith", "member_to_clubs_attributes"=>{"1582563582187"=>{"club_id"=>"4", "job_id"=>["1", "2"], "_destroy"=>"false"}, "1582563587159"=>{"club_id"=>"3", "job_id"=>["4"], "_destroy"=>"false"}}}
, и у меня есть частный метод в контроллере, который выполняет итерации по member_to_club_attributes
, а затем по массиву job_id
и создает все необходимые MemberToClub
модели (есть и другие вещи, касающиеся редактирования существующих MemberToClub
экземпляров, но достаточно сказать, что это работает). Проблема в том, что когда я go вернулся, чтобы отредактировать пользователя с существующими экземплярами MemberToClub
, предыдущий пример выглядит так:
Я думаю, мои вопросы таковы: Есть ли лучшая модель / настройка ассоциации, которую я могу сделать здесь, и учитывая приведенный выше сценарий ios, каков самый «рельсовый способ» сделать это?
Заранее спасибо за любую помощь