2013-10-09 7 views
2

У меня есть флажокRuby On Rails Флажок не спасает данные

<%= f.check_box :anonymous %> 

И моя таблица содержит столбец anonymous, который является истинным или ложным.

код генерируется в HTML:

<input name="comment[anonymous]" type="hidden" value="0" /> 
<input id="comment_anonymous" name="comment[anonymous]" type="checkbox" value="1" /> 

Теперь, по какой-то причине, когда я добавить данные, которые он не экономить, если мой анонимный флажок или нет .. это не изменение данных в базе данных .. Все остальные поля получает сохранен, кроме анонимных.

В чем может быть проблема?

+0

Можете ли вы показать больше кода вида? Как 'form_for' вокруг' f.check_box'? – lurker

+0

'<% = form_for (комментарий,: url => (defined? (Submit_url)? Submit_url: [commentable," comments "]),: method =>: post,: id =>" comment-form ",: class => "form-horizontal") do | f | %> ' – user1736479

ответ

1

Использование #check_box_tag вместо:

<%= check_box_tag(:anonymous) %> 

Из официальных гидов:

параметры массива не играют хорошо с помощником check_box. Согласно спецификации HTML, отмеченные флажками, не представляют значения. Однако часто для флажка всегда удобно указывать значение . Помощник check_box подделывает это путем создания вспомогательного скрытого ввода с тем же именем. Если флажок снят, будет отправлен только скрытый вход , и если он установлен, то оба отправлены, но значение, представленное по флажку, имеет приоритет. При работе с параметрами массива эта повторяющаяся подача будет путать Rails , так как повторяющиеся имена входных имен - это то, как он решает, когда следует начинать новый элемент массива . Предпочтительно либо использовать check_box_tag, либо использовать хеши вместо массивов.

+0

Я получаю: ' 'undefined method' check_box_tag 'для # ' ' – user1736479

+0

@ user1736479 Я предполагаю, что вы сделали' f.check_box_tag'. Посмотрите на мое предлагаемое решение снова :) – Agis

+0

Agis, я попробовал ваше решение, и оно не работает. Я по-прежнему получаю ложную информацию в своей базе данных. Я открываю тег следующим образом: '<% = check_box_tag: anonymous, 1, false, data: {" label "=>" Želim ostati anonimen "}%>' – user1736479

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