[RUBY] Implémentation de la fonction Rails CRUD ② (édité et détaillé cette fois)

Dans la continuité de la dernière fois , je décrirai les modifications et les détails. Procédure lors de l'ajout d'une fonction Révision: routes.rb → Ajouter un contrôleur → Ajouter une vue

Fonction d'édition La procédure est similaire à un nouveau message. Modifier l'affichage de l'écran (modifier) → Mettre à jour avec le contenu d'entrée (mettre à jour)

routes.rb


resources :birds, only: [:index, :new, :create, :destroy, :edit]

image.png

Collez le lien vers l'écran d'édition sur l'écran de liste. Prefix passe l'identifiant avec "edit_bird" et c'est une méthode GET, donc ce sera comme suit.

index.html.erb


<%=link_to "Éditer", edit_bird_path(bird.id), method: :get %>

Obtenez l'enregistrement qui correspond à l'ID passé et transmettez-le à l'écran d'édition.

birds_controller.rb


def edit
  @bird = Bird.find(params[:id])
end

Et puis il y a l'écran d'édition.

edit.html.erb


<%=form_with(model:@bird, local:true) do |form|%>
  <%=form.text_field :name, placeholder: "Nom de l'oiseau"%>
  <%=form.text_field :pic, placeholder: "URL de la photo d'oiseau"%>
  <%= form.submit "mise à jour"%>
<%end%>

Le lien vers l'écran d'édition s'affiche correctement. image.png

Si vous cliquez dessus, la transition se fera correctement! image.png

Processus de mise à jour à partir d'ici! Tout d'abord, routes.rb!

routes.rb


resources :birds, only: [:index, :new, :create, :destroy, :edit, :update]

Le contrôleur reçoit le contenu d'entrée et met à jour le DB! Utilisez bird_param créé dans le nouveau message!

birds_controller.rb


...
  def update
    bird = Bird.find(params[:id])
    bird.update(bird_params)
  end
  private
  def bird_param
    # params.require(:Nom du modèle).permit(:Nom de colonne,:Nom de colonne,......)
    params.require(:bird).permit(:name, :pic)
  end
...

image.png

image.png

image.png

Il a été correctement changé pour Kawasemi 2!

Fonction d'affichage détaillée C'est enfin la dernière fonctionnalité! faisons de notre mieux! !!

routes.rb


resources :birds, only: [:index, :new, :create, :destroy, :edit, :update, :show]

Ce n'est pas grave, mais puisque toutes les fonctions ont été ajoutées, vous n'avez pas besoin d'écrire uniquement! Effaçons-le!

routes.rb


  resources :birds

C'était plutôt rafraîchissant! !!

Mettons un lien vers l'écran des détails sur l'écran de la liste! Lorsque vous exécutez la commande rails routes image.png Le préfixe est bird, la méthode est GET, et faisons aussi l'identifiant!

index.html.erb


<%= link_to 'Détails', bird_path(bird.id), method: :get %>

Ensuite, le contrôleur reçoit l'identifiant et obtient l'enregistrement!

birds_controller.rb


def show
    @bird = Bird.find(params[:id])
  end

Enfin, show.html.erb!

show.html.erb


<%= @bird.name %>
<div style=
"background-image: url(<%= @bird.pic %>); 
 background-position: center center;
 background-size: cover;
 width: 300px; 
 height: 300px;
 margin-bottom: 10px;
 ">
</div>

image.png

Celui que vous avez sélectionné s'affiche.

Résumé Si vous comprenez les règles du framework, les rails identifieront automatiquement la destination du lien si vous passez un modèle, vous pouvez créer un site de base à une vitesse explosive. Cette fois, nous allons implémenter une fonction de connexion, alors attendez-vous avec impatience! Merci jusqu'au bout! !!

Recommended Posts

Implémentation de la fonction Rails CRUD ② (édité et détaillé cette fois)
Implémentation de la fonction Rails CRUD ① (nouvel ajout, suppression cette fois)
Échafaudage de procédure d'implémentation de fonction CRUD de base
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
Implémentation de la fonction de recherche floue Rails
[Rails] Implémentation de la fonction de catégorie
[Rails] strftime ceci et cela
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
[Rails] Implémentation de la fonction d'importation CSV
[Rails] Implémentation asynchrone de la fonction similaire
[Rails] Enregistrer l'heure de début et l'heure de fin
[Rails] Implémentation de la fonction de prévisualisation d'image
[Rails] À propos de la mise en œuvre de la fonction similaire
[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Implémentation de la fonction d'exportation CSV
[Rails] [jQuery] Implémentation de fonction asynchrone avec remote: true et js.erb
Fonction CRUD et MVC dans Rails
[Rails] Implémentation de la fonction de catégorie d'ascendance gemme
[Ruby on Rails] Implémentation de la fonction de commentaire
[Rails] Commentaire mémo de procédure d'implémentation
[Rails] Implémentation de la fonction de balise à l'aide de la fonction agit-as-taggable-on et de la fonction de complétion d'entrée de balise à l'aide de tag-it
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] Implémentation d'une fonction similaire
[Rails] Implémentation de la fonction de recherche en utilisant le ransack de gem
[Rails] Implémentation de la fonction d'agrandissement d'image à l'aide de lightbox2
[Nuxt / Rails] Implémentation POSTed en utilisant axios et devise_token_auth
Ruby on Rails Implémentation de la fonction d'envoi automatique de courrier
Ceci et celui de la dérivation conditionnelle du développement des rails