我正在制作一个测验类型的应用程序,并创建了提交答案的表单。一切正常,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 %>
我可能只是缺少一些少年,但现在已经超出了我的范围。任何帮助将不胜感激!
答案 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元素看到它
感谢