2 Stimmen

Rails 3.1 teilweiser Rückgriff

Ich verstehe nicht ganz, warum das neue Feature des teilweisen Renderns nicht immer funktioniert. Zum Beispiel mit diesem Code:

= render(:partial => "pages/#{foo}/data")

Es wird niemals auf das Partial pages/_data.html.erb zurückfallen, wenn pages/test/_data.html.erb nicht existiert. Wie kann ich dieses Verhalten erreichen?

2voto

demental Punkte 1404

Etwas, was du tun kannst, ist:

= render(:partial => "pages/#{foo}/data") rescue render(:partial => "pages/data")

Aber ich wäre interessiert, ob jemand eine bessere Lösung hat, diese ist nicht elegant, besonders wenn du einige Variablen dem Partial übergeben musst. Es wäre zumindest besser, wenn dies von einem Helfer behandelt wird.

1 Stimmen

Hat für mich funktioniert - Ich war ausdrücklicher bei der Rettung, um sicherzustellen, dass andere Ausnahmen hochkamen.

0 Stimmen

Das Problem hier ist, dass wenn das Rendern von "pages/#{foo}/data" eine Ausnahme wirft, es auch fallbackt (die Ausnahmen schluckt), was wahrscheinlich nicht das ist, was du möchtest.

0voto

Nick Coelius Punkte 4498

Mein Verständnis von Partialviews ist nicht, dass sie kleine, eigenständige Stücke von HTML zum Rendern sind, sondern eher Bits und Stücke von Abstraktion, die Sie verwenden können, um Ihren Code auf eine kohärentere Weise zu organisieren.

Soweit ich das sehe, werden Partials erstellt, um an einer oder mehreren Stellen verwendet zu werden, sodass die Datei nicht überfüllt wird, sie werden nicht einfach nur gerendert. Allerdings könnte ich mich irren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X