Tengo una página con varios mensajes, cada uno con un enlace que cambia (refina) la calificación de ese mensaje. Cuando un usuario hace clic en este enlace, quiero una llamada AJAX que actualice el valor de columna correspondiente en la base de datos para ese mensaje. Cuando se hace clic en este enlace, no debe pasar nada visiblemente. No debe haber actualización o recarga de la página.Usando link_to remote: true para pasar los parámetros a los raíles
He estado tratando de hacer esto usando link_to remote: cierto, pero parece que no puedo hacer que funcione. La documentación en línea no está clara en esta pregunta y con los cambios entre Rails 2 y 3, algunas cosas como: with ya no son compatibles.
He copiado lo que tengo hasta ahora, pero sé que está lejos incluso de acercarse a una solución. En términos de parámetros que necesito pasar a la base de datos, necesito el profile_id, el message_id y el new_rating.
¡Gracias de antemano!
show.html.haml
.status-bar
= link_to "", { action: :refine_result }, remote: true
profile_controller.rb
...
def refine_result
@refinement = ResultRefinement.new
@refinement.profile_id = params[:profile_id]
@refinement.message_id = params[:message_id]
@refinement.save
respond_to do |format|
format.html { render nothing: true }
format.js { render nothing: true }
end
end
result_refinement.rb
class ResultRefinement < ActiveRecord::Base
attr_accessible :profile_id, :message_id, :new_rating, :deleted
belongs_to :profile
end
impresionante. Lo tengo para comenzar a pasar los parámetros y guardarlos en la base de datos. El único problema que todavía tengo es evitar que la página redireccione o cambie. –
Parece que otro archivo js estaba sobrescribiendo el ajax. Por eso sigo siguiendo el enlace en lugar de hacer que ajax tome el control. –