[RUBY] Implementierung einer ähnlichen Funktion (Ajax)

Ich werde es für mich selbst zusammenstellen.

Implementierung

** Controller-Modell erstellt **

routes.erb


  Rails.application.routes.draw do
    resources :posts do
      resources :comments, only: [:create, :destroy]
      resource :likes, only: [:create, :destroy]
    end
  end

Likes wird zu ** Ressource **, da keine ID angegeben werden muss

post.rb


  def liked_by?(user)
    likes.where(user_id: user.id).exists?
  end

Sie können überprüfen, ob es Ihnen gefällt

likes_controller.rb


class LikesController < ApplicationController

  def create
    @post = Post.find_by(id: params[:post_id])
    #Bedingungen, um kontinuierliche Klicks zu verhindern
    unless @post.liked_by?(current_user)
      @like = current_user.likes.new(post_id: @post.id)
      @like.save
    end
  end

  def destroy
    @post = Post.find_by(id: params[:post_id])
    @like = current_user.likes.find_by(post_id: @post.id)
    @like.destroy
  end

end

Eine Umleitung ist für das Erstellen bzw. Zerstören nicht erforderlich. Löschen Sie sie daher, falls beschrieben.

ruby:posts/show.html.slim


#Geben Sie eine ID an, da diese als Ajax erstellt werden muss
div id='like_#{ @post.id }'
   #Partialisieren Sie das Like-Symbol
   = render 'like', post: @post

ruby:posts/_like.html.slim


#Löschen wie
- if post.liked_by?(current_user)
  = link_to post_likes_path(post), method: :delete, remote: true do
    i.fas.fa-heart style='color: red;'
    = post.likes.count

#Wie schön
- else
  = link_to post_likes_path(post), method: :post, remote: true do
    i.far.fa-heart
    = post.likes.count

Rufen Sie eine JavaScript-Datei auf, indem Sie ** remote: true ** hinzufügen

ruby:likes/create.js.erb


$("#like_<%= @post.id %>").html("<%= j(render 'posts/like', post: @post ) %>");

ruby:likes/destroy.js.erb


$("#like_<%= @post.id %>").html("<%= j(render 'posts/like', post: @post ) %>");

**Komplett! ** **.

Recommended Posts

Implementierung einer ähnlichen Funktion (Ajax)
[Rails] Implementierung einer ähnlichen Funktion
[Rails] Asynchrone Implementierung der Like-Funktion
[Rails] Über die Implementierung der Like-Funktion
Implementierung einer ähnlichen Funktion in Java
Implementierung der Ajax-Funktion (Follow Function)
Implementierung der Suchfunktion
Implementierung der Pagenationsfunktion
[Ruby on Rails] Implementierung einer ähnlichen Funktion
Implementierung der Ajax-Entfernung in Rails
Implementierung der Bildvorschau
[Rails] Implementierung der Kategoriefunktion
Implementierung der Kategorie-Pulldown-Funktion
[Rails] Implementierung der Tutorial-Funktion
[Rails] Implementierung der CSV-Importfunktion
[Rails] Implementierung der Bildvorschau
[Rails] Implementierung der Benutzerrückzugsfunktion
[Rails] Implementierung der CSV-Exportfunktion
Implementierung der Rails-Sortierfunktion (angezeigt in der Reihenfolge der Anzahl der Gleichen)
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
Implementierung der Benutzerauthentifizierungsfunktion mit devise (2)
Implementierung der Benutzerauthentifizierungsfunktion mit devise (1)
Rails [Für Anfänger] Implementierung der Kommentarfunktion
Implementierung der Benutzerauthentifizierungsfunktion mit devise (3)
[Rails] Implementierung der Suchfunktion mit Gem's Ransack
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
[Rails] Implementierung der Bildvergrößerungsfunktion mit Lightbox2
[JQuery] Implementierungsverfahren der AutoComplete-Funktion [Java / Spring]
Implementierung der Suchfunktion Lernnotiz (Portfolioerstellung)
Implementierung der Löschfunktion (wenn Sie einen fremden Schlüssel haben)
Implementierung der Bildvorschau-Funktion
Angewandte Implementierung von Chat-Space
Suchfunktion [Implementierung kopieren und einfügen]
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
[Rails] Implementierung der Drag & Drop-Funktion (mit Wirkung)
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Vorbereitung"
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der "Seed Edition" der Vorfahren
Hinzufügung der Gastanmeldefunktion
Informationen zur Implementierung der Zusammenführungsverarbeitung einschließlich der Sortierfunktion der Stream-API
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Edit Form Edition"
Implementierung der Fuzzy-Suchfunktion für Schienen
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Erstellungsformular"
[Java] Implementierung des Faistel-Netzwerks
Implementierung von XLPagerTabStrip mit TabBarController