2016-09-20 14 views
0

Ich baue meine erste Rails-App und möchte einen Like-Button implementieren, um Posts zu mögen. Die meisten Ressourcen, die ich dazu finden kann, beinhalten die Verwendung von AJAX. Ich habe mich gefragt, ob es eine Möglichkeit gibt, eine ähnliche Schaltfläche zu implementieren, ohne AJAX zu verwenden. HierIst es möglich, eine ähnliche Schaltfläche ohne AJAX zu erstellen?

+0

Was möchten Sie mit Ihrem Like-Button machen? –

+0

geben Sie einfach an, dass der Beitrag gemocht wurde und erhöhen Sie die Anzahl der Likes, die der Beitrag hat –

+0

Wenn ein Benutzer Ihren Beitrag mögen möchte. Wie wirst du das ohne AJAX implementieren? –

Antwort

6

ist die Lösung: Es laden Sie Ihre Seite

  1. Sagen wir zur Zeit Sie sind auf dem posts/index.html.erb Seite, wo alle posts zeigen und auch in jedem Post gibt es eine wie Taste.
  2. Erstellen Sie einen neuen Controller namens LikeController.rb, der Likes für den Beitrag erstellt/entfernt. Machen Sie es in Ihren Routen zu einer verschachtelten Ressource, wie: Es wird besser identifizieren, welcher Post den gleichen Button bekommen hat.

    resources :posts do resources :likes end

  3. Erstellen Sie zwei Methoden create und delete in der neu geschaffenen Controller.

  4. In Ihren Posts like Button erstellen Sie einen Link für die create Methode über die post_id.
  5. In der create Methode erstellen Sie die eine neue Like für diesen Beitrag. Post kann von der params[:post_id] gefunden werden, die Sie in der gleichen Link weitergegeben haben.
  6. Nach der erfolgreichen Erstellung des neuen Like Umleitung zu back
0

Sie können von Faye machen WebSockets eine ähnliche Anforderung an eine JavaScript-Datei und Update zu senden, die dynamisch zählen möchten. Beobachten Sie einen Rails-Cast für Faye-Websockets und versuchen Sie, aus Ihrer Sicht eine Sendeanforderung zu implementieren. Ich bin sicher, dass es die Arbeit machen wird, die Sie wollen.

0

Sie können dies ohne Ajax tun (obwohl ich nicht sicher bin, warum Sie diese Einschränkung auferlegen).

Haben Sie einen unsichtbaren iframe auf der Seite und lassen Sie Ihre Schaltfläche wie ein Formular senden, deren Ziel der iframe ist. Durch das Senden des Formulars (d. H. Klicken auf die Schaltfläche) wird jetzt der Rahmen und nicht die gesamte Seite neu geladen. Inhalt im Frame kann mit der Host-Seite kommunizieren (entweder Methoden direkt unter window.parent aufrufen oder postMessage verwenden), damit Sie Zähler auf der Seite und ähnlichem aktualisieren können.

Verwandte Themen