Сначала попробуйте прочитать полное «Руководство по рельсам для ассоциаций» , особенно часть о has_many :through
. Затем проверьте вашу схему, если ваша база данных перенесена и содержит для таблицы interests
необходимые внешние ключи для curriculums
и vacancies
, называемые curriculum_id
и vacancy_id
.
Если это все на месте, следующий код создаст связь между двумя объектами:
@curr = Curriculum.find(1)
@vac = Vacancy.find(1)
@curr.interests << @vac
@curr.save
Последние две строки создают интерес между @curr
и @vac
и сохраняют его в базе данных. Поэтому вам не следует использовать идентификаторы и обрабатывать их напрямую, а вместо этого работать с объектами.
Вторая часть теперь заключается в предоставлении пользовательского интерфейса, который позволяет определять (и устранять) интересы между учебными планами и вакансиями. Базовый поток здесь:
- В фокусе одна учебная программа.
- У вас есть ссылка для добавления / удаления учебных программ.
- В открывшемся окне отображается список возможных вакансий, где у каждой вакансии есть флажок.
- При установке (или снятии флажков) флажков идентификаторы вакансий будут храниться в параметрах запроса, отправленного контроллеру.
Смотрите (старый) подкаст Railscast # 52 , как это сделать в аналогичном контексте. Или посмотрите пример для has_many: через с флажками .
Альтернативным способом было бы использовать автозаполнение JQuery и добавлять интересы по одному. Смотрите хороший подкаст Railscast # 258 , который использует для этого JQuery Tokeninput.