Как использовать Простую Форму для создания Флажка (для выбора Нескольких параметров) и отображения информации в виде Массива?

#ruby-on-rails #simple-form

#рубин на рельсах #простая форма

Вопрос:

Я использую простую форму для своего приложения и хотел бы предоставить пользователям возможность выбирать несколько элементов и отображать их в своем профиле в виде списка.

Строка в моей форме выглядит так:

 lt;%= f.input :subject, as: :check_boxes, collection: [ "Math", "English", "Science"] %gt;  

Вот как я показываю это на лицевой стороне:

 lt;%= @tutor.subject %gt;  

Если бы кто-то нажал «Математика и наука», я бы хотел, чтобы появилось что-то подобное: «Математика, наука».

У меня возникли проблемы с этим, так как кажется, что он не распознает выбранные флажки. Как бы я построил это шаг за шагом?

Ответ №1:

Разумное решение проблемы состоит в том, чтобы использовать две таблицы вместо одной строки — одну для предметов и объединенную таблицу между предметами и преподавателями. Это отделяет данные от кода вашего приложения.

 class Subject  has_many :tutors  has_many :subjects, through: :tutor_subjects   validates_uniqueness_of :name end  class TutorSubject  belongs_to :tutor  belongs_to :subject end  class Tutor  has_many :tutor_subjects   has_many :subjects, through: :tutor_subjects  end  

Затем вы бы назначили преподавателя и предметы с:

 lt;%= f.association :subjects, label_method: :name, as: :checkboxes, collection: Subject.all %gt;