J'ai une boucle comme ça :
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Ensuite, dans mon partiel du milieu, comment puis-je accéder au message actuel ?
J'ai une boucle comme ça :
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Ensuite, dans mon partiel du milieu, comment puis-je accéder au message actuel ?
Donnez-le au partiel comme une variable locale
<%= render :partial => 'middle', :locals => { :post => post } %>
Bien sûr, rails dispose également d'un raccourci pour rendre les collections :
<%= render :partial => 'post', :collection => @posts %>
Dans ce cas, il appellera le post partiel pour chaque post avec une variable locale 'post'.
Vous pouvez même rendre un modèle d'espacement entre chaque message :
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
Notez que le hash :locals n'est pas nécessaire lorsque vous utilisez Rails 3. Le hash arguments est converti en arguments qui sont passés au partial.
Vous pouvez remplacer l'ensemble de chaque bloc par ceci :
<%= render partial: "product", collection: @posts %>
Ou même plus court :
<%= render @posts %>
Documentation complète (section 3.2) https://guides.rubyonrails.org/action_view_overview.html
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Bonjour Elliot Je l'utilise sur un échafaudage standard. J'utilise l'intérieur de index.html.erb pour rendre _show.html.erb où show partial contient modal. Tout fonctionne bien sauf que lorsque j'appuie sur le lien show, il montre le même id au lieu de montrer des id différents.