2013-05-22 4 views
2

У меня есть флажок, и я хочу, чтобы флажок был установлен, если параметр равен 1. Поэтому мне нужно: checked, чтобы оно было истинным только в том случае, если условие истинно.Флажок: проверено по условию

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

Текущее состояние, которое я тестирую, не работает. Параметр автоматически добавляется или вычитается, когда форма отправляется, потому что она связана с той же страницей.

ответ

3

В API говорят: Rails check_box_tag

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

Таким образом, вы можете улучшить это в одном line:

<%= check_box_tag 'catalog_image', 1, <CONDITION>, :onclick => 'this.form.submit()' %> 
+0

Это лучший ответ. – Aeramor

2

использования, если это, потому что наличие :checked тега, который имеет значение, а не его значение

<% 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 %> 
+0

'<% = check_box_tag: some_boolean, true, (@somestring == 'true') -%> ' Работает отлично – Aeramor

Смежные вопросы