So habe ich eine Seite mit mehreren Nachrichten, jede mit einem Link, der die RATING dieser Nachricht ändert (verfeinert). Wenn ein Benutzer auf diesen Link klickt, möchte ich einen AJAX-Aufruf, der den entsprechenden Spaltenwert in der Datenbank für diese Nachricht aktualisiert. Wenn dieser Link angeklickt wird, sollte nichts sichtbar passieren. Es sollte keine Seite aktualisieren oder neu laden.Verwenden von link_to remote: true, um Parameter an Schienen zu übergeben
Ich habe versucht, dies zu tun mit link_to remote: true, aber ich kann nicht scheinen es zu arbeiten. Online-Dokumentation ist in dieser Frage ziemlich unklar und mit den Änderungen zwischen Rails 2 und 3 werden einige Dinge wie: mit werden nicht mehr unterstützt.
Ich habe kopiert, was ich bisher habe, aber ich weiß es weit davon entfernt, sogar in der Nähe einer Lösung zu kommen. In Bezug auf Parameter, die ich in die Datenbank übergeben muss, brauche ich die profile_id, die message_id und die new_rating.
Vielen Dank im Voraus!
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
Ehrfürchtig verwenden. Ich habe es begonnen, die Parameter zu übergeben und sie in der Datenbank zu speichern. Das einzige Problem, das ich immer noch habe, ist das Stoppen der Umleitung oder Änderung der Seite. –
Es scheint, dass eine andere js-Datei den Ajax überschrieben hat. Deshalb habe ich den Link weiter verfolgt, anstatt Ajax übernehmen zu müssen. –