2015-12-23 2 views
0

Я пытаюсь передать связанные параметры в модель с мультиселективным списком. Мне нужно осваивать классы для лекторов, выбирая лектора при создании новой записи в классе. Я проверил db и ничего не получил в колонке lecturers_id. Это моя форма:Multiselect не сохраняет

 <%= f.select(:lecturers_id, Lecturer.all.collect {|l| [ l.name, l.id ] }, {}, { :multiple => true }) %> 

Мой контроллер:

def subject_params 
    params.require(:subject).permit(:name, :credit, :number_of_hours, :lecturers_id => []) 
end 
def create 
    @subject = Subject.new(subject_params) 
    @subject.save 
    redirect_to "/subjects" and return 
end 

И мое мнение:

<% @lecturers.each do |lect| %> 
     <tr> 
      <td class='col-md-3'><%= lect.name %></td> 
      <td class='col-md-3'> 
       <% lect.subjects do |subj| %> 
       <%= subj.name %> 
       <% end %> 
      </td> 
    <% end %> 
+0

Что такое '@ subject.errors' после' @ subject.save' называется? – danielrsmith

+0

@ danielrsmith нет. Сохранение работает нормально –

+0

Что такое ассоциация? Поле с несколькими полями указывает, что у предмета есть много преподавателей, но вы указываете столбец 'lecturers_id'. Это столбец в таблице предметов? если это так, то это неверно для поля с несколькими полями. – jverban

ответ

0

Предполагая ассоциацию, что Subjecthas_many :lecturers то изменится lecturers_id к lecturers_ids:

def subject_params 
    params.require(:subject).permit(:name, :credit, :number_of_hours, :lecturers_ids => []) 
end 

Форма:

<%= f.select(:lecturers_ids, ... 
+0

Лектор имеет много предметов и предметов, относящихся к лектору –

0

В случае Subjecthas_many :lecturers. Форма должна быть

<%= f.select(:lecturer_ids, Lecturer.all.collect {|l| [ l.name, l.id ] }, {}, { :multiple => true }) %> 

и ваши subject_params должны быть

def subject_params 
    params.require(:subject).permit(:name, :credit, :number_of_hours, :lecturer_ids => []) 
end 
Смежные вопросы