Я пытаюсь создать форму, используя form_for, которая добавит Employees. Для сотрудника я хочу динамически назначать несколько специализаций, таких как C#, asp и т. Д. Я использую следующий код в видеRails 4 Multipleselect
<%= f.select :specilization, Specialization.all.collect{|p| [p.name, p.id]}, {}, :multiple => true %>
Я также сделал HABTM между сотрудниками и специализации, как
Employee.rb
class Employee < ActiveRecord::Base
has_and_belongs_to_many :specializations
end
Specialization.rb
class Specialization < ActiveRecord::Base
has_and_belongs_to_many :employees
end
с этими результатами, im не удалось сохранить выбранные значения в db (MySQl). Был бы признателен, если бы кто-нибудь мог решить мою проблему или посоветовать мне, как это сделать правильно?
Заранее спасибо.
Спасибо. Я последовал твоему шагу. Но я получаю ** неявное преобразование символа в integer ** ошибка в контроллере 'def employee_params params.require (: employee) .permit (: name,: specialization,: employees_specialization [: id,: specialization_id]) end' – Abhishek
У вас есть синтаксическая ошибка. Двоеточие (:) находится на неправильной стороне 'employees_specialization'.А также, это не 'employee_specialization', это' employees_specializations_attributes'. Сделайте это: 'employees_specializations_attributes: [: id,: specialization_id]' – DiegoSalazar
все еще не повезло. неспособный сохранить его, имеет массив. может сохранить то же самое, если я не использую опцию «multiple» в поле select в форме. – Abhishek