Rieles – Necesito una checkbox para cambiar un campo en la base de datos

Sé que he hecho esto antes, pero por mi vida no puedo resolverlo.

Tengo una tabla con un campo “llamado” en ella. Necesito usar una checkbox para actualizar la base de datos y verificar si “llamado” es “verdadero” o no. No necesita ser AJAX, solo necesita actualizar el campo.

tabla: campo rsvp: llamado

Gracias una tonelada.

Un enfoque simple sin ajax podría ser usar una checkbox dentro de un formulario y enviar el formulario con el evento de checkbox javascript onclick.

Ejemplo:


Ver :

<% form_for @rsvp, :id => "rsvp" do |f| %> <%= f.check_box :called, :onclick => "$('#rsvp').submit()" %> <% end %> 

esto si está utilizando JQuery … con el prototipo, la cadena onclick será:

 $('rsvp').submit() 

Controlador :

 @rsvp = Rsvp.find(params[:id]) if @rsvp.update_attributes(params[:rsvp]) # success else # fail end 

Referencia:

checkbox

En vista:

 <% form_for :rsvp, :url => {:controller => "rsvp", :action => "update"} do |f| %> <%= f.check_box :called %> <%= f.submit "Update" %> <% end %> 

En el controlador rsvp, método de actualización:

 @RSVPobject.updateAttribute(:called, params[:rsvp][:called]) 

Si solo desea hacer esto simplemente haciendo clic en la checkbox, debe ir a la carretera Ajax. Intente usar un “campo de observación” en su vista.

 <%= observe_field ":called", :frequency => 0.25, :update => 'feedback_to_user', :url => {:action => :mark_as_called}, :with => 'called', :on => 'click' %> 

Todos los detalles aquí .

No olvide ajustar sus rutas para que se pueda encontrar la acción “mark_as_called”.