将字段从下拉列表存入Ruby on Rails表

时间:2017-12-02 06:10:18

标签: ruby-on-rails ruby database

我正在尝试将一组下拉菜单中的信息存储到我可以存储和显示的表中。我想知道如何把它放到一张新桌子里。我生成了一个新表,但我不确定如何存储它。单击按钮时出现POST错误。这是我的show.html.erb文件,其中包含下拉菜单:

  <p id="notice"><%= notice %></p>
  <%= form_for(Stc.new, url:{action:'new'}) do |f| %>
    <% @courses.each do |course| %>
  <%= render 'shared/error_messages' %>
  <%= label_tag course.title, course.title %>
  <%= f.label :semester %>
  <%= select_tag(:semester, options_for_select([['--------','-----------'], ['Fall', 'Fall'], ['Spring', 'Spring']])) %>
  <%= select_tag(:semester, options_for_select([['--------','-----------'], ['2012', '2012'], ['2013', '2013'], ['2014', '2014'], ['2015', '2015'], ['2016', '2016'], ['2017', '2017']])) %>
  <%end%>

   <%= f.submit "Student taken course", class: "btn btn-primary" %>
  

这是我在stc.rb中的表:

  class Stc < ApplicationRecord
   belongs_to :course
   belongs_to :user
 end

1 个答案:

答案 0 :(得分:0)

操作应为create。通常您无需指定操作:create,如果您从new操作进行渲染,则rails会知道此操作。但我不确定你将如何处理控制器中的代码。您可以阅读更多here。 代码可以是这样的:

<%= form_for(Stc.new, url:{ action: 'create' }) do |f| %>
  <% @courses.each do |course| %>
    <%= render 'shared/error_messages' %>
    <%= label_tag course.title, course.title %>
    <%= f.label :semester %>
    <%= select_tag(:semester, options_for_select([['--------','-----------'], ['Fall', 'Fall'], ['Spring', 'Spring']])) %>
    <%= select_tag(:semester, options_for_select([['--------','-----------'], ['2012', '2012'], ['2013', '2013'], ['2014', '2014'], ['2015', '2015'], ['2016', '2016'], ['2017', '2017']])) %>
  <%end%>

  <%= f.submit "Student taken course", class: "btn btn-primary" %>
<% end %>