routes.rb
resources :birds, only: [:index, :new, :create, :destroy, :edit]
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.
Si vous cliquez dessus, la transition se fera correctement!
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
...
Il a été correctement changé pour Kawasemi 2!
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 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>
Celui que vous avez sélectionné s'affiche.
Recommended Posts