Überschreibende Rails to_param?

8

Wie bekomme ich die to_param-Methode, um Keyword-Slugs zu liefern? Ich habe Probleme, es mit dieser Route zu arbeiten:

map.pike '/ Auktion /: Auktions-ID / Element /: ID',: Controller = & gt; 'Artikel',: action = & gt; 'show'

Früher funktionierte das überschriebene to_param für

'Artikel / 1-Kaschmir-Schal'

, aber scheitert mit 'auction/123/item/1'

Aktualisierung:

Ich bin mir nicht sicher, ob die Syntax korrekt ist [(edit: es ist richtig: es funktioniert :-)], oder sogar effizient .... aber mit haml, habe ich festgestellt, dass der folgende Code funktioniert, um den gewünschten Link zu generieren ('auction /: auction_id / item /: id')

%Vor%     
Jesse 21.12.2008, 10:20
quelle

1 Antwort

8

Ich bin mir nicht sicher, ob ich deine Frage verstehe. (Es ist 3:41 Uhr hier)

Von dem, was ich sehe, greifen Sie direkt auf auction_id method zu, anstatt pike_path(auction, item) zu verwenden, das #to_param verwenden würde.

Außerdem könnte es für auction/123/item/1 fehlschlagen, weil Sie Ihren Controller nicht geändert haben.

Ich denke, es wäre hilfreich, zu beschreiben, wie man mit Arbeitsproben arbeitet.

Wenn Sie #to_param überschreiben, funktionieren die IDs im Allgemeinen nicht mehr. Dies bedeutet, dass wenn Sie mit Slugs fortfahren, jedes Mal, wenn polymorpische URL generiert wird (zB link_to object, object ), diese an den Wert von_param übergeben wird. Es ist erwähnenswert, dass Sie auch Ihren Controller ändern müssen.

Ich persönlich denke, dass der beste Weg, um Slugs einfach zu generieren, darin besteht, techno-weenies permalink_fu zu verwenden und% hinzuzufügen. co_de% zu Ihrem Modell und überschreiben Sie dann has_permalink . Zum Beispiel

%Vor%

unter der Annahme, dass Sie Slug, ein String-Feld, haben und Ihren Titel verschmelzen möchten.

Sie müssen auch Ihren Controller anpassen:

%Vor%

Dann können Sie Routen in den Ansichten auf diese Weise erzeugen:

%Vor%

Übrigens sollten Sie Ihre Aktionen NICHT in der Ansicht sortieren. Der beste Weg ist die Verwendung von to_param .

    
maurycy 23.12.2008, 02:41
quelle

Tags und Links