[RUBY] [Mémo de travail de l'application personnelle] Déplacer l'emplacement du bouton de suivi

J'ai installé le bouton de suivi avant, Je ne me souviens pas où je l'ai installé avant L'endroit est assez déroutant C'était un endroit que je n'utiliserais normalement pas là-bas, alors Je vais le déplacer vers un endroit plus facile à comprendre et à utiliser.

La destination est ici. スクリーンショット 2020-08-25 午後7.28.35.png À côté de current_user.name pour chaque message.

Tout d'abord, allons trouver le bouton de suivi que nous avons créé quelque part auparavant.

Je l'ai trouvé! !!

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


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

J'appelle avec ce modèle partiel.

D'où appelez-vous d'ici?

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


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

Ceci est également appelé avec un modèle partiel.

D'où appelez-vous d'ici?

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"

J'obtiendrai certainement une erreur, mais collons simplement ceci dans la destination.

= render 'follow_form'

Quand je l'ai collé, j'ai eu cette erreur.

ActionView::MissingTemplate in Posts#index

On m'a dit qu'il y avait un problème avec les posts # index.

Attends une minute.

Le fichier que vous essayez d'appeler app/views/users/_follow_form.html.haml

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

Si le répertoire est différent, vous devez l'écrire comme ça.

= render 'users/follow_form'

Quand je le mets là-dedans, aucune erreur n'apparaît, mais elle n'est pas affichée. .. .. Pourquoi? ??


Une autre découverte avant cette raison est résolue. J'ai finalement trouvé un bouton de suivi. Cela fonctionne également très bien. Si vous appuyez sur le bouton de suivi, vous pouvez suivre correctement, Il fonctionne comme un bouton de suivi. Tout ce que vous avez à faire est de déplacer l'emplacement de celui-ci.

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

On dirait que c'était mauvais hier. La mauvaise chose à ce sujet est que tous les @users deviennent current_user. Maintenant, quel que soit le lien sur lequel l'utilisateur clique, il accède à Ma page de l'utilisateur courant et ne va pas à Ma page de cette personne.

@user =La personne qui a publié le message

Je dois ecrire.

Après tout, j'ai décidé de ne pas mettre le bouton de suivi sur l'écran de liste

Lorsque j'ai regardé Twitter, il n'y avait pas de bouton de suivi sur l'écran de la liste. Le bouton de suivi n'était pas sur l'écran de liste, seulement après que je suis allé à l'écran des détails de l'utilisateur. Alors ne mettez pas de bouton de suivi sur l'écran de liste.

Recommended Posts

[Mémo de travail de l'application personnelle] Déplacer l'emplacement du bouton de suivi
[Mémo de travail de l'application personnelle] Créez un calendrier avec simple_calendar
[Mémo personnel] À propos du fonctionnement du bouton (GUI) de Docker Desktop pour Windows
Un mémo qui conteneurise l'application de chat simple de Node.js + socket.io
[Mémo de travail de développement d'applications personnelles] Créez une page de liste d'images comme un insta
Mémo: [Java] Vérifiez le contenu du répertoire
[Personnel] Mémorandum JUnit5 (travail en cours)
Production d'applications personnelles 2 Introduction de la police WEB