わかりました、私は探し回っていますが、これに対する答えは見つかりませんでした。データベースからページ、セクション、および調査(フォーム)をレンダリングする非常に複雑なカスタムレールフォームジェネレータアプリケーションがあります。
サーバー側で検証を行い(JavaScriptをまだ終了しておらず、両方のタイプが必要です)、ラジオボタンを除くすべてのタイプのフォーム入力オブジェクトで機能します。チェックされていない場合、パラメータに表示するラジオボタンを送信することができないためです。パラメータの外側でラジオボタンを探すのではなく、応答ループでそれらをチェックする方法を見つけたいと思います(可能な場合)。
検証を確実にするためにモデルにバインドするというこの提案を見てきましたが、私の質問は一意であるため、バインドするモデルオブジェクトがありません。
私のフォームは1つの部分で宣言されています:
<%= 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
ただし、空のラジオボタンはパラメータに投稿されないため、これがラジオボタンに対して呼び出されることはありません。
何か提案や助けはありますか?必要に応じて、さらに多くのコードを共有してください。