Маршрутизация без названия модели - PullRequest
2 голосов
/ 04 января 2012

Используя этот вопрос и railscast 63 Мои статьи перенаправлены на article / article_permalink.

Я бы хотел, чтобы они были доступны без моделиимя в URL, так my-domain.com/article_permalink направляет прямо к статье.Я бы только хотел, чтобы это случилось на шоу-шоу.Это возможно?

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Я думаю, тебе нужно что-то вроде ...

(в rout.rb)

 match '/:id' => 'articles#show', :via => 'get'

(должен быть последним или ближе к концу маршрутов, поскольку он может соответствовать запросам, предназначенным для других маршрутов)

Чтобы изменить помощники article_path (...), "as" может помочь: http://guides.rubyonrails.org/routing.html#overriding-the-named-helpers

Или вы можете добавить помощника для этого конкретного пути.

0 голосов
/ 04 января 2012

Если я понимаю ваш вопрос, вы хотите, чтобы модель, связанная с маршрутом "article / article_permalink", была динамической на основе того, какая статья выбрана из списка?

Готовы ли вы добавить модель?Идентификатор конца URL в виде строки запроса?Более сложным подходом было бы использование ссылок POST с идентификатором модели в качестве скрытого поля ввода.Ваш контроллер может определить, был ли к нему доступ через get / post, и обработать его соответствующим образом, но это не правильно.

Независимо от того, когда действие контроллера запускается на основании запроса к "article / article_permalink"", он должен знать, какую модель выбрать.С HTTP без сохранения состояния, что-то должно быть передано. Вы могли бы придумать и написать JavaScript для запуска одного вызова AJAX, установить сеанс var, а затем запустить GET, но это грязно.

Надеюсь, я понялвопрос ...

...