将表单下拉列表连接到后端

时间:2019-06-02 01:30:59

标签: ruby-on-rails

我正在尝试向Web应用程序添加功能,以便用户可以对课程进行评分。在评分功能中,有一个预设的教每个课程的讲师列表。它作为数组存储在postgres db中。

课程模型(教师列表的一部分)和复习模型是分开的。

我已经成功创建了一个表单,该表单在撰写评论时将教师列表显示为下拉列表,但是在数据库的列中保存教师的名称却没有成功。

我不确定在下面的代码中将要保存的数据放在最后一行。

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 :(得分:0)

尝试一下

<%= select_tag :instructor_name, options_for_select(@course.instructors.collect { |i| [i, i] }) %>

答案 1 :(得分:0)

提交表格时,您将在参数中收到教师的姓名。在控制器中,您可以访问参数并将其添加到评论中。

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