Mam migrację, która używa wartości boolowskiej i generuje pole wyboru w widoku. Jednak bez względu na to, co kliknę, nie wpłynie to na wartość zapisaną w bazie danych.Ruby on Rails - Checkbox nie zapisuje do bazy danych?
Moja migracja wygląda następująco:
def self.up
create_table :blogposts do |t|
t.string :title
t.text :body
t.boolean :allow_comments, :default => false
t.references :author
t.references :lasteditor
t.timestamps
end
end
Moim zdaniem wygląda to tak:
<% semantic_form_for([:controlpanel, @blogpost]) do |form| %>
<%= form.error_messages %>
<% form.inputs do %>
<%= form.input :title %>
<%= form.input :body %>
<%= form.input :allow_comments %>
<% end %>
<%= form.buttons %>
która produkuje następujące HTML:
<li class="boolean required" id="blogpost_allow_comments_input">
<label for="blogpost_allow_comments">
<input id="blogpost_allow_comments" name="blogpost[allow_comments]" type="checkbox" value="1" />
<input name="blogpost[allow_comments]" type="hidden" value="0" />Allow comments
<abbr title="required">*</abbr>
</label>
</li>
Kontroler jest po prostu domyślne generowane przez rusztowanie.
Jeśli ustawię wartość domyślną w migracji, ta wartość jest zawsze zapisywana w bazie danych. Jeśli nie ustawię wartości domyślnej, zawsze będzie ona równa NULL.
Czy ktoś może zaproponować rozwiązanie, sugestię, co może być nie tak?
Wszelkie porady są mile widziane.
Dzięki.
Witam, to nie ma żadnej różnicy. – Dan