单选按钮不提交数据

时间:2017-10-10 22:26:32

标签: html ruby-on-rails ruby

我正在制作一个测验类型的应用程序,并创建了提交答案的表单。一切正常,question_id和user_id被提交到数据库,但内容永远不会通过。它始终显示为零。我99%肯定问题出在我的表格上,所以这就是:

  <%= form_for @respond do |f| %>
    <%= f.text_field :question_id, value: @q.id, :style => "position:absolute;left:3000px;" %>
    <%= f.text_field :user_id, value: current_user.id, :style => "position:absolute;left:3000px;" %>
      <% for @ans in Answer.all.where('question_id = ?', @q.id) %>
          <%= f.radio_button :content, @ans.content, :type => "radio", :name => "radios", :id => "radio#{@ans.id}"%>
          <label for="radio<%= @ans.id %>" class="btn-lg btn-secondary" style="width:100%;background-color:#eaeaea;margin-bottom:20px"><%= @ans.content %></label>
      <% end %>
      <div class="actions">
      <%= f.submit "Submit", :class => "btn-lg btn-primary", :style => "width:100%;margin-top:20px;margin-bottom:20px;" %>
     </div>
  <% end %>

我可能只是缺少一些少年,但现在已经超出了我的范围。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

原因是您已将单选按钮的名称从play.filters.enabled += "play.filters.cors.CORSFilter" // play.http.filters = "Filters" play.filters.cors { # allow all paths pathPrefixes = ["/"] # allow all origins allowedOrigins = null allowedHttpMethods = ["GET", "POST", "PUT", "DELETE"] # allow all headers allowedHttpHeaders = null } 更改为content 因此,如果您正在搜索radios,则会params[:respond][:content],这里您需要搜索nil

但是,如果你使用的是强参数,而你的field_name也是内容,那么我建议你不要指定单选按钮的名称。

params[:respond][:radios]

它会自动将单选按钮的名称设为<%= f.radio_button :content, @ans.content, :type => "radio", :id =>"radio#{@ans.id}"%> ,您可以通过浏览器中的inspect元素看到它

感谢