Angenommen, ich möchte ein Blog mit Rails 3 auf meiner Website haben und es wird das einzige sein, was ich darauf habe. Ich möchte Rails verwenden, um es zu implementieren, aber ich mag nicht die URLs, die Rails produziert. Ich möchte URLs wie folgt aus:Rails 3 URL ohne Controller Name
example.com/2012/05/10/foo
Ich will nicht so etwas wie das, was ich weiß, wie (mit to_param) zu tun:
example.com/entries/2012/05/10/foo
ich noch verwenden möchten die Helfer wie
new_entry_path(@entry) # -> example.com/new
entry_path(@entry) # -> example.com/2012/05/10/foo
edit_entry_path(@entry) # -> example.com/2012/05/10/foo/edit
destroy_entry_path(@entry)
form_for(@entry)
link_to(@entry.title, @entry)
und so weiter. Ich werde dann Kommentare und wollen sie zugänglich als ihre eigenen Ressourcen zu machen, wie
example.com/2012/05/10/foo/comments/5
und URLS sollte auch möglich sein, mit den normalen Helfer zu bekommen:
edit_entry_comment_path(@entry, @comment) # -> example.com/2012/05/10/foo/comments/5/edit
oder etwas so wie das.
So ist es möglich, URLs ohne den Controller-Namen zu erhalten und immer noch die URL-Helper-Methoden zu verwenden? Beim Überschreiben von to_param wird immer nur der Teil nach dem Controller-Namen in der URL geändert. Es wäre sehr hilfreich, einen Beispielcode zu bekommen.
Warum wurde dies abgelehnt? Es ist die richtige Antwort ... – jaredonline
Ja, ich versuche das selbst auszuarbeiten - und nicht nur eins, sondern zwei! Vielleicht ist es ein Einwand gegen die scheinbare Skizzenhaftigkeit der Lösung (ich sehe Intuition diktieren, dass die Routen "// 2012/05/10/foo" mit einem extra vorangehenden Schrägstrich wären), aber es funktioniert definitiv und ist definitiv viel einfacher und mehr Rails-y, als alle findigen Routen manuell neu zu implementieren. – Matchu
Ja. Es war bei -3, als ich hier ankam. Vielleicht, weil die von Ihnen angegebene Route nicht das Datum/Jahr/Monat/Datum enthält? – jaredonline