Подключение выпадающего списка формы к бэкэнду - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь добавить функцию в веб-приложение, где пользователи могут оценивать курсы. В рейтинговой функции есть заранее установленный список инструкторов, которые преподают каждый курс. Это хранится в базе данных postgres как массив.

Модель курса (частью которой является список инструкторов) и модель обзора являются отдельными.

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

Я не уверен, что поставить в последней строке следующий код для сохранения данных.

reviews_controller.rb

def create
    @review = Review.new(review_params)
    @review.user_id = current_user.id
    @review.course_id = @course.id
    @review.instructor_name = 

Вот как я отобразил его в интерфейсе, чтобы пользователи могли выбирать инструкторов.

_form.html.erb

<%= form.label "Instructor" %>
<%= select_tag :instructor_name, options_for_select(@course.instructors) %>

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

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Когда вы отправляете форму, вы получите имя инструктора в параметрах.В контроллере вы можете получить доступ к параметрам и добавить их в обзор.

reviews_controller.rb

def create    
  @review = Review.new(review_params)
  @review.user_id = current_user.id
  @review.course_id = @course.id
  @review.instructor_name = params[:instructor_name]
end
0 голосов
/ 02 июня 2019

Попробуйте это

<%= select_tag :instructor_name, options_for_select(@course.instructors.collect { |i| [i, i] }) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...