[RUBY] [Arbeitsnotiz für persönliche Anwendungen] Verschieben Sie den Speicherort der Schaltfläche "Folgen"

Ich habe den Follow-Button schon einmal installiert. Ich kann mich nicht erinnern, wo ich es zuvor installiert habe Der Ort ist ziemlich verwirrend Es war ein Ort, den ich dort normalerweise nicht benutzen würde Ich werde es an einen Ort bringen, der leichter zu verstehen und zu benutzen ist.

Das Ziel ist hier. スクリーンショット 2020-08-25 午後7.28.35.png Neben current_user.name für jeden Beitrag.

Lassen Sie uns zuerst den Follow-Button suchen, den wir irgendwo zuvor gemacht haben.

Ich habe es gefunden! !!

ruby:app/views/users/show.html.haml


.users-show
  = render 'follow_form'
  = render 'stats'

Ich rufe mit dieser Teilvorlage an.

Wo rufst du von hier aus an?

ruby:app/views/users/_follow_form.html.haml


- unless current_user?(@user) 
  - if current_user.following?(@user)
    = render 'unfollow'
  - else
    = render 'follow'

Dies wird auch mit einer Teilvorlage aufgerufen.

Wo rufst du von hier aus an?

ruby:app/views/users/_unfollow.html.haml


= form_for(current_user.following_relationships.build(following_id: @user.id)) do |f|
  = f.hidden_field :following_id
  = f.submit "Follow", class: "btn btn-large btn-primary follow-btn"

ruby:app/views/users/_unfollow.html.haml


= form_for(current_user.following_relationships.find_by(following_id: @user.id), html: { method: :delete}) do |f|
  = f.submit "Unfollow", class: "btn btn-large btn-primary follow-btn"

Ich werde definitiv eine Fehlermeldung erhalten, aber fügen wir diese einfach in das Ziel ein.

= render 'follow_form'

Als ich es einfügte, bekam ich diesen Fehler.

ActionView::MissingTemplate in Posts#index

Mir wurde gesagt, dass es ein Problem mit dem # index der Beiträge gibt.

Warte eine Minute.

Die Datei, die Sie aufrufen möchten app/views/users/_follow_form.html.haml

Anrufen app/views/posts/_post.html.haml

Wenn das Verzeichnis anders ist, müssen Sie es so schreiben.

= render 'users/follow_form'

Wenn ich es hier einsetze, erscheint kein Fehler, aber es wird nicht angezeigt. .. .. Warum? ??


Eine weitere Entdeckung vor diesem Grund ist gelöst. Ich habe endlich einen Follow-Button gefunden. Es funktioniert auch gut. Wenn Sie die Schaltfläche "Folgen" drücken, können Sie ordnungsgemäß folgen. Es fungiert als Follow-Button. Alles was Sie tun müssen, ist den Ort zu verschieben.

posts_controller.rb


 def index
    @posts = Post.all.includes(:user).order("created_at DESC").page(params[:page]).per(5)
    @post = Post.new
    @user = current_user
 end

Es sieht so aus, als wäre das gestern schlecht gewesen. Das Schlimme daran ist, dass alle @users zu current_user werden. Unabhängig davon, auf welchen Link des Benutzers geklickt wird, wird die Seite "Mein Benutzer" des aktuellen Benutzers aufgerufen und nicht die Seite "Meine Person".

@user =Die Person, die den Beitrag gepostet hat

Ich muss schreiben.

Immerhin habe ich beschlossen, die Schaltfläche "Folgen" nicht auf dem Listenbildschirm zu platzieren

Als ich mir Twitter ansah, gab es auf dem Listenbildschirm keine Schaltfläche zum Folgen. Die Schaltfläche "Folgen" befand sich nicht auf dem Listenbildschirm, sondern erst, nachdem ich zum Bildschirm mit den Benutzerdetails gegangen war. Setzen Sie also keine Schaltfläche "Folgen" auf den Listenbildschirm.

Recommended Posts

[Arbeitsnotiz für persönliche Anwendungen] Verschieben Sie den Speicherort der Schaltfläche "Folgen"
[Arbeitsnotiz für persönliche Anwendungen] Erstellen Sie einen Kalender mit simple_calendar
[Persönliches Memo] Über die Schaltfläche (GUI) von Docker Desktop für Windows
Ein Memo, das die einfache Chat-Anwendung von Node.js + socket.io enthält
[Arbeitsnotiz zur Entwicklung persönlicher Anwendungen] Erstellen Sie eine Bildlistenseite wie eine Insta
Anmerkung: [Java] Überprüfen Sie den Inhalt des Verzeichnisses
[Persönlich] JUnit5-Memorandum-Memo (in Arbeit)
Produktion persönlicher Anwendungen 2 Einführung der WEB-Schriftart