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%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
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
.
Tags und Links ruby-on-rails