好的,我一直在挖掘并没有找到答案。我有一个非常复杂的自定义 Rails 表单生成器应用程序,它从数据库中呈现页面、部分和调查(表单)。
它在服务器端进行验证(还没有完成 javascript 并且想要两种类型),并且我让它适用于所有类型的表单输入对象,除了单选按钮。因为我无法让它提交单选按钮以在未选中时显示在参数中。与仅在参数之外寻找单选按钮相反,我想找到一种方法在我的响应循环中检查它们(如果可能的话)。
我已经看到了将其绑定到模型以确保其验证的建议,但我的问题是独一无二的,因此我没有将其绑定到的模型对象。
我的表格是在一个部分声明的:
<%= form_tag take_surveys_path, :id => "take_surveys_new", :method => :post do %>
以及我用于生成单选按钮的代码(查看问题类型字段的部分部分):
<% when 'Radio Button' %>
<% question.answers.each do |answer| %>
<%= radio_button "response[#{question.id}]content", question.question_text, answer.value %>
<%=answer.value%>
<br />
<% end %>
<% end %>
我遍历“take_survey_controller”中的参数,然后检查每个问题是否有效,其中包括基于问题对象中设置的一些属性的正则表达式和所需验证:
params[:response].each do |question_id, answer|
#find my questions and answers, call
if item.valid?
#do a bunch of saving and stuff...
end
end
但这永远不会被单选按钮调用,因为空单选按钮不会发布到参数。
有什么建议或帮助吗?如果需要,很高兴分享更多代码。