[RUBY] [Rails6] Comment connecter la fonction d'affichage générée par Scaffold avec la fonction utilisateur générée par devise

introduction

Je voulais créer une application de publication d'articles avec Rails, et quand j'ai présenté Scaffold pour couper la procédure, je suis tombé sur la connexion des messages et des utilisateurs, alors j'ai partagé mes connaissances Si vous voulez en savoir plus, veuillez consulter ce document

Préparation

Génération post-fonction avec Scaffold

Tout d'abord, générez une fonction de publication avec Scaffold. Incroyablement facile. db: migrer N'oubliez pas

$ rails g scaffold Post content:string
$ db:migrate

devise Reportez-vous à cet article. Très facile à comprendre

Mise en relation

appartient_to et has_many

app/models/user.rb


class User < ApplicationRecord

  #Ajoutez ce qui suit.N'oubliez pas le pluriel s
  has_many :posts,  dependent: :destroy
end

app/models/post.rb


class Tip < ApplicationRecord
  #Ajoutez ce qui suit.Pour être prudent, assurez-vous que les messages vides sont rejetés
  belongs_to :user
  validates :content, presence: true
end

Ajouter une colonne user_id

$ rails g migration add_user_id_to_posts user_id:integer
$ rails db:migrate

*** Ceci complète le lien entre le modèle User et le modèle Post en termes de mécanisme ***

Ajouté au contrôleur

app/controllers/posts_controller.rb


  private
    # Use callbacks to share common setup or constraints between actions.
    def set_post
      @post = Post.find(params[:id])
    end

    # Only allow a list of trusted parameters through.
    def post_params
      params.require(:post).permit(:content)
    end
end

Modifiez le code ci-dessus généré automatiquement par Scaffold comme suit.

app/controllers/posts_controller.rb


  private
    # Use callbacks to share common setup or constraints between actions.
    def set_post
      @post = Post.find(params[:id])
    end

    # Only allow a list of trusted parameters through.
    def post_params
      params.require(:post).permit(:content).merge(user_id: current_user.id)
    end
end

Ceci termine. Lançons-le, allez sur localhost: 3000 / posts et post! ‼

Recommended Posts

[Rails6] Comment connecter la fonction d'affichage générée par Scaffold avec la fonction utilisateur générée par devise
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
Comment faire de https le schéma de l'URL générée par l'assistant d'URL de Rails
[Rails] Comment décider de la destination par "voies ferrées"
Comment connecter les chaînes de la liste séparées par des virgules
[Avec des astuces de retour] Comment présenter React aux rails les plus simples
[Rails] Comment afficher une liste de messages par catégorie
[Rails] Comment utiliser la "devise" des gemmes
[Rails] Comment utiliser l'appareil (Remarque)
Connectez-vous au serveur Rails avec iPhone
Comment ajouter la fonction de suppression
[Rails] Comment introduire le kaminari avec Slim et changer le design
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
Comment utiliser MinIO avec la même fonction que S3 Utiliser docker-compose
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
[Rails] Comment utiliser la méthode de la carte
Comment accéder directement à Socket avec la fonction TCP de Spring Integration
Comment mettre à jour les modifications utilisateur dans Rails Devise sans entrer de mot de passe
[Rails] Utilisez le dispositif pour obtenir des informations sur l'utilisateur actuellement connecté
Comment implémenter TextInputLayout avec la fonction de validation
Comment comparer uniquement le temps avec Rails (de quelle heure à quelle heure, quelque chose comme)
Comment gérer les erreurs de connexion avec l'appareil
[Note] Comment utiliser Rails 6 Devise + cancancan
[Traitement × Java] Comment utiliser la fonction
Pour implémenter la publication d'images à l'aide de rails
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
[Rails] Comment traduire la devise en japonais
Comment mettre en œuvre la fonction d'authentification du courrier au moment de l'inscription de l'utilisateur
Comment créer un environnement Rails 6 avec Docker
[Rails] Comment lire le fichier XML téléchargé depuis l'écran en type Hash
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
[Rails] Comment enregistrer plusieurs enregistrements dans la table intermédiaire avec une association plusieurs-à-plusieurs
[Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer
[Rails] Procédure de mise en œuvre lorsque des fonctions publiques / privées sont ajoutées à la fonction de publication
La route vers la japonaisisation des rails conçoit des messages d'erreur
Utilisez [Rails] pour concevoir la fonction utilisateur invité (pour le portefeuille)
Comment utiliser les rails g échafaudage, fonctions, précautions
Fonction de publication implémentée par communication asynchrone dans Rails
Comment sortir le CSV créé par Rails vers S3
Comment mettre en œuvre la fonction de chapelure avec Gretel
[Pour les débutants] Comment implémenter la fonction de suppression
Code utilisé pour connecter Rails 3 à PostgreSQL 10
Comment séparer .scss par contrôleur dans Rails