4

我有一个复选框,如果参数等于 1,我希望复选框被选中。所以我需要 :checked 仅在条件为真时才为真。

<%= check_box_tag 'catalog_image', 1, :onclick => 'this.form.submit()', :checked => (params[:catalog_image] == 1)%>

我正在测试的当前条件不起作用。当表单提交时,参数将自动添加或减去,因为它链接回同一页面。

4

2 回答 2

5

API 说: Rails check_box_tag

check_box_tag(name, value = "1", checked = false, options = {}) public

因此,您可以在一行中改进它:

<%= check_box_tag 'catalog_image', 1, <CONDITION>, :onclick => 'this.form.submit()' %>
于 2014-09-01T19:10:54.793 回答
4

Use if to this, because the presence of the :checked tag that matters, not it's value

<% if params[:catalog_image] == 1 %>
   <%= check_box_tag 'catalog_image', 1, :onclick => 'this.form.submit()', :checked =>true %>
<% else %>
   <%= check_box_tag 'catalog_image', 1, :onclick => 'this.form.submit()'%>
<% end %>
于 2013-05-22T14:58:51.113 回答