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. 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? ??
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.
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.