Mam więc stronę z kilkoma komunikatami, każdy z linkiem, który zmienia (poprawia) RATING tej wiadomości. Kiedy użytkownik kliknie na ten link, chcę wywołać AJAX, które aktualizuje odpowiednią wartość kolumny w bazie danych dla tej wiadomości. Kiedy klikniesz ten link, nic nie powinno się wydarzyć w widoczny sposób. Nie powinno być odświeżania strony ani ponownego ładowania.Korzystanie z opcji link_to remote: true do przekazywania parametrów do szyn
Próbowałem zrobić to za pomocą linku link_to remote: true, ale nie mogę go uruchomić. Dokumentacja online jest dość niejasna w tej kwestii, a wraz ze zmianami między Railsami 2 i 3, niektóre rzeczy takie jak: with nie są już obsługiwane.
Skopiowałem to, co mam do tej pory, ale wiem, że daleko mu do zbliżenia się do rozwiązania. Pod względem parametrów, które muszę przekazać do bazy danych, potrzebuję profile_id, message_id i new_rating.
Z góry dziękuję!
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
niesamowite. Mam go, aby rozpocząć przekazywanie parametrów i zapisywanie ich w bazie danych. Jedyny problem, który wciąż mam, to powstrzymanie strony przed przekierowaniem lub zmianą. –
Wygląda na to, że kolejny plik js nadpisał ajax. Dlatego nadal śledziłem link, zamiast przejąć ajax. –