Предположим, у меня есть блог с Rails 3 на моем веб-сайте, и это будет единственное, что у меня есть. Я хотел бы использовать Rails для его реализации, но мне не нравятся URL-адреса Rails. Я хотел бы URL, как это:Rails 3 URL без имени контроллера
example.com/2012/05/10/foo
Я не хочу что-то вроде того, что я знаю, как это сделать (с to_param):
example.com/entries/2012/05/10/foo
Я все еще хочу, чтобы использовать помощники, как
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)
и так далее. Я тогда есть комментарии и хочу, чтобы сделать их доступными в качестве своих собственных ресурсов тоже, как
example.com/2012/05/10/foo/comments/5
и те URLs должны быть также можно получить с обычными помощниками:
edit_entry_comment_path(@entry, @comment) # -> example.com/2012/05/10/foo/comments/5/edit
или что-то как это.
Так можно получить URL-адреса без имени контроллера и все еще использовать методы помощника url? Просто переписывание to_param всегда будет просто изменять часть после имени контроллера в URL-адресе. Было бы очень полезно получить некоторый пример кода.
Почему это проголосовали? Это правильный ответ ... – jaredonline
Да, я пытаюсь это сделать сам, а не один, а два! Возможно, это возражение против кажущейся эскизности решения (я вижу, что интуиция диктует, что маршруты будут «// 2012/05/10/foo» с дополнительной предшествующей косой чертой), но она определенно работает и, безусловно, намного проще и больше Rails-y, чем повторное выполнение всех находчивых маршрутов вручную. – Matchu
Yea. Это было в -3, когда я приехал сюда. Возможно, потому, что на указанном вами маршруте нет материала/год/месяц/дата? – jaredonline