我有一个布尔值可以将评论设为公开或私有。
布尔值是提交中的一列,我现在以一种笨拙的方式工作,想从表单中删除复选框,替换为隐藏字段,以便用户看到的只是提交按钮,有条件的基于布尔状态:
提交#显示:
<% 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
但我更喜欢使用隐藏字段和条件来保持简单。
是否可以使用隐藏字段在表单中设置布尔值,还是必须使用自定义方法和路由?