routes.rb, wie legen Sie einen anderen Primärschlüssel für die Pfade fest?

8

Gegeben ein Modell wie Thread (ID, UUID), das eine eindeutige generierte ID ist. Ich möchte die Standardrouten ändern:

%Vor%

Um nicht zu verwenden: id aber zu Benutzer: uuid --- Wie wird das in Rails / routes.rb ermöglicht?

Danke

    
AnApprentice 26.07.2011, 20:57
quelle

2 Antworten

7

Wenn ich es richtig verstehe, möchten Sie sicherstellen, dass Rails anstelle des Feldes :id das Feld :uuid in den Routen verwendet.

Dies ist ziemlich einfach zu bewerkstelligen, überschreiben Sie in Ihrem Modell die Methode to_param :

%Vor%

und in Ihrem Controller müssen Sie etwas schreiben wie:

%Vor%

Hoffe, das hilft.

    
nathanvda 27.07.2011 18:41
quelle
-1

:id kann beliebig geändert werden. Ihr params Hash wird mit dem Namen gefüllt, den Sie in Ihren Routen gewählt haben. Wenn Sie ihn also in :uuid geändert haben, müssten Sie nur Ihre Controller entsprechend ändern ( o = Model.find_by_uuid(params[:uuid]) )

    
cam 26.07.2011 21:01
quelle