コメントを公開または非公開にするブール値があります。
ブール値は送信の列であり、現在は不器用な方法で動作しており、フォームからチェックボックスを削除して隠しフィールドに置き換えたいと考えています。ブール状態:
提出物#show:
<% if @submission.comment_show == true %>
<%= render "hide_comment_form" %>
<%= render "comments/comment" %>
<% else %>
<%= render "show_comment_form" %>
</div>
<% end %>
_show_comment_form
<%= simple_form_for [@contest, @submission] do |f| %>
<div>
<%= f.input :comment_show, label: false %>
<%= hidden_field_tag :contest_id, @contest.id %>
<%= f.submit "Make Comments Public", :class => 'btn btn-mini' %>
</div>
<% end %>
_hide_comment_form
<%= simple_form_for [@contest, @submission] do |f| %>
<div class ="">
<%= f.input :comment_show, label: false %>
<%= hidden_field_tag :contest_id, @contest.id %>
<%= f.submit "Make Comments Private", :class => 'btn btn-mini' %>
</div>
<% end %>
hidden_field_tag を試してみましたが、うまくいきませんでした。
また、同じことを達成するためのより洗練された方法とルーティングを見てきました: http://buckybits.blogspot.com/2011/09/simple-ajax-property-toggle-in-rails-30.html
しかし、単純にするために隠しフィールドと条件を使用したいと思います。
非表示フィールドを使用してフォームにブール値を設定することは可能ですか?それともカスタム メソッドとルーティングを使用する必要がありますか?