Я создаю приложение для блога на Rails 3, и я хочу переопределить маршрут показа по умолчанию, сгенерированный для сообщения, делая
resources :posts, :except => :show
Что генерирует для маршрута шоу (если бы я его не исключил),
/post/:id
Я хочу, чтобы мой маршрут выглядел так, а вместо этого, где url_title - это строка, сгенерированная моей моделью before_save, где она удаляет не буквенно-цифровые символы и заменяет пробелы дефисом.
/:year/:month/:day/:url_title
Я пытаюсь выполнить это с помощью этого бита кода:
match "/:year/:month/:day/:url_title", :to => "posts#show", :as => :post
В теории это должно позволить мне вызвать post_path (@post) (где @post является экземпляром моего класса post), и он должен иметь возможность сортировать этот маршрут, и он почти работает.
Единственная проблема заключается в том, что он пытается заменить идентификатор сообщения в течение года. Другие поля заполняются правильно. Я думаю, что это происходит потому, что rails имеет какое-то поведение по умолчанию, которое делает его действительно, действительно хочет иметь идентификатор в URL-адресе, и он не доверяет мне использовать мой собственный уникальный идентификатор (post.url_title, в этом случае).
Я мог ошибаться. У кого-нибудь есть опыт работы с этим видом маршрутизации, или знаете, что?