Tengo una migración que usa un valor booleano y genera una casilla de verificación en su vista. Sin embargo, no importa en qué clic, el valor guardado en la base de datos no se ve afectado.Ruby on Rails: ¿casilla de verificación no guardada en la base de datos?
Mi migración se ve así:
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
Mi punto de vista es el siguiente:
<% 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 %>
que produce el código HTML siguiente:
<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>
El controlador es sólo el predeterminado generado por el andamio.
Si configuro el valor predeterminado en la migración, ese valor siempre se guarda en la base de datos. Si no configuro un valor predeterminado, siempre es NULO.
¿Alguien puede sugerir una solución, sugerencia sobre lo que podría estar yendo mal?
Cualquier consejo apreciado.
Gracias.
Hola, no hace ninguna diferencia – Dan