[Rails] Ajout de la fonction de commentaire Ruby On Rails

conditions

Seuls les utilisateurs connectés peuvent publier et commenter. Seul le créateur peut supprimer le commentaire.

table

Screen Shot 2020-10-09 at 18.17.06.png

modèle

post.rb


class Post < ApplicationRecord
  belongs_to :user
  has_many :comments
end

comment.rb


class Comment < ApplicationRecord
  belongs_to :post
end

routage

Vous pouvez utiliser post_id et id (de l'utilisateur) dans les paramètres.

routes.rb


Rails.application.routes.draw do
 devise_for :users
  resources :posts do
    resources :comments, only: [:create, :destroy]
  end
  root "posts#index"
end
post_comments POST   /posts/:post_id/comments(.:format)     comments#create
post_comment DELETE /posts/:post_id/comments/:id(.:format) comments#destroy

manette

comments_controller.rb


def create
    @post = Post.find(params[:post_id])
    @post.comments.create(comment_params)
    redirect_to post_path(@post)
  end

  def destroy
    @post = Post.find(params[:post_id])
    @comment = @post.comments.find(params[:id])
    @comment.destroy
    redirect_to post_path(@post)
  end

  private
    def comment_params
      params.require(:comment).permit(:body, :user_id)
    end

Vue

L'identifiant de l'utilisateur créé par <% = f.hidden_field: user_id, value: current_user.id%> est passé.

show.html.erb


<p>
  <strong>Post:</strong>
  <%= @post.post %>
</p>

<% if @post.user_id == current_user.id %>
<%= link_to 'Edit', edit_post_path(@post) %> |
<% end %>
<%= link_to 'Back', posts_path %>

<h3>Comments</h3>
<% @post.comments.each do |comment|%>
<ul>
  <li><%= comment.body %>
  <span>
  <% if comment.user_id == current_user.id %>
  <%= link_to '[X]', post_comment_path(@post, comment), method: :delete %>
  <% end %>
  </span>
  </li>
</ul>
<% end %>

<%= form_for [@post, @post.comments.build] do |f| %>
<div class="field">
  <%= f.text_field :body, autofocus: true, autocomplete: "body" %>
</div>
<div class="field">
  <%= f.hidden_field :user_id, value: current_user.id %>
</div>
<div class="actions">
  <%= f.submit %>
</div>
<% end %>

Recommended Posts

[Rails] Ajout de la fonction de commentaire Ruby On Rails
[Ruby on Rails] Implémentation de la fonction de commentaire
[Ruby on rails] Implémentation d'une fonction similaire
Implémentation de la fonction de connexion Ruby on Rails (Session)
[Ruby on Rails] Communication asynchrone de la fonction de publication, ajax
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
[Ruby on Rails] Introduction de la fonction de pagination
Connaissance de base de Ruby on Rails
[Ruby on Rails] Fonction de sortie CSV
[Ruby on Rails] DM, fonction de chat
Une note sur la fonction de départ de Ruby on Rails
[Ruby on Rails] Introduction des données initiales
Rails Ajout d'une fonction de connexion facile et facile
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
Rails [Pour les débutants] Implémentation de la fonction de commentaire
[Ruby on Rails] Notation japonaise de l'erreur
Explication de Ruby sur rails pour les débutants ①
[Ruby on Rails] Suppression logique (fonction de retrait)
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
Paramètres de validation pour la fonction de connexion Ruby on Rails
[Ruby on Rails] Jusqu'à l'introduction de RSpec
Recommandation de classe de service dans Ruby on Rails
Ruby on Rails ~ Principes de base de MVC et du routeur ~
[Ruby on Rails] Un mémorandum de modèles de mise en page
Ruby on Rails Implémentation de la fonction d'envoi automatique de courrier
[Ruby on Rails] Fonction de post-édition (mise à jour, suppression)
[Ruby on Rails] Affichage individuel des messages d'erreur
Ajout de la fonction de connexion invité
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
[Ruby on Rails] Fonction de classement des scores (affichage complet)
Record d'apprentissage Ruby on rails-2020.10.07 ②
[Rails] Implémentation de la fonction de catégorie
[Ruby on Rails] Fonction de prévisualisation de l'image dans le fichier
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
[Rails] Implémentation de la fonction tutoriel
Record d'apprentissage de Ruby on rails -2020.10.06
Explication de Ruby sur rails pour les débutants ⑥ ~ Création de validation ~
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
[Rails] Implémentation d'une fonction similaire
Résumé de la validation Ruby on Rails
[Ruby on Rails] Fonction de recherche (modèle, formule de sélection de méthode)
Mémorandum de base Ruby on Rails
Essayez d'utiliser l'attribut de requête Ruby on Rails