Создание формы для ассоциации HABTM - PullRequest
0 голосов
/ 29 июня 2011

Вот что я пытаюсь сделать. У меня есть курсы, на которые студенты записываются. Я хочу отслеживать продвинутых студентов в этом классе. Я установил другую модель под названием course_results.

class CourseAdvanceType < ActiveRecord::Base
  belongs_to :course
  has_and_belongs_to_many :students
end

####### 
class Students < ActiveRecord::Base
  has_many :courses
  has_and_belongs_to_many :course_advance_types
end

#######
class Courses < ActiveRecord::Base
  has_one :course_advance_type
  has_many :students
end

В идеале мне нужна небольшая форма, позволяющая выбрать тип обучения (академический, спортивный), который позволит мне добавлять учеников под ним. Каждый студент будет записан в таблицу course_advance_types_students, созданную для ассоциации HABTM.

Примерно так:

<form>
  <select>
    <option>academic</option>
    <option>athletic</option>
  </select>
  <div id="students">
     <div>Student ID: <input type="text" /></div>
     <div>Student ID: <input type="text" /></div>
     <!-- This link would dynamically add another name field -->
     <div><a href="[code]">Add Student</a></div>
  </div>
  <input type="submit>
</form>

Каков наилучший способ сделать это? Я думал об использовании accepts_nested_attributes_for, но я не знаю, работает ли это, потому что я не хочу устанавливать атрибуты для студентов, я хочу, чтобы идентификатор студента был сохранен в файле course_advance_type_id в таблице course_advance_types_students, чтобы я мог получить отчет Курсы, в которых учащиеся продвигаются вперед с указанием типа продвинутого уровня и списка студентов.

Если мне нужно кое-что прояснить или переосмыслить свой подход, скажите, пожалуйста.

Спасибо.

1 Ответ

1 голос
/ 29 июня 2011

Проверьте формуляр: https://github.com/justinfrench/formtastic

Гораздо более простой способ собрать форму для отношения has_many / habtm.

...