Dans mon application rails J'ai une fonction d'assistance:Un vraiment aide à puce rails nécessaires
def render_page(permalink)
page = Page.find_by_permalink(permalink)
content_tag(:h3, page.title) + inline_render(page.body)
end
Si j'ai appelé la page "maison" avec:
<%= render_page :home %>
et le corps de "home" a été :
<h1>Home<h1/>
bla bla
<%= render_page :about %>
<%= render_page :contact %>
je recevrais « home », avec « environ » et « contact », il est agréable et simple ... jusqu'à où quelqu'un va et change " maison » contenu de la page:
<h1>Home<h1/>
bla bla
<%= render_page :home %>
<%= render_page :about %>
<%= render_page :contact %>
qui se traduira par une boucle infinie (un défaut du segment sur webrick) ...
Comment puis-je changer la fonction d'aide à quelque chose qui ne va pas tomber dans ce piège?
Ma première tentative a été le long des lignes de:
@@list = []
def render_page(permalink)
unless @@list.include?(permalink)
@@list += [ permalink ]
page = Page.find_by_permalink
result = content_tag(:h3, page.title) + inline_render(page.body)
@@list -= [ permalink ]
return result
else
content_tag :b, "this page is already being rendered"
end
end
qui a travaillé sur mon environnement de développement, mais ont bombardé dans la production ...
des suggestions?
Merci Vous
Stefan
Ne faites jamais confiance aux variables @@. – Matchu