Разница между: как вариант в маршрутизации Rails 2 и Rails3? - PullRequest
1 голос
/ 15 ноября 2010

В Rails 2.X у нас есть:

 map.resources :posts, :controller => 'posts', :as => 'articles'

По сути, это создает псевдоним для наших маршрутов сообщений.Например, это отправляет «domain.com/articles/» в действие индекса контроллера сообщений.

Однако в Rails3 опция: as ведет себя по-разному.Например:

 resources :posts, :controller => 'posts', :as => 'articles'

устанавливает именованный маршрут, а не псевдоним, а переход на домен "domain.com/articles/" выдает ошибку:

No route matches {:controller=>"posts"}

Как получитьстарый (Rails 2): как поведение с использованием нового (Rails 3) API?

PS: Пожалуйста, не говорите мне просто переименовать мой контроллер.Это не вариант для меня.

Ответы [ 2 ]

0 голосов
/ 14 августа 2011

Вы можете выполнить то же поведение, используя опцию path:

resources :posts, :path => '/articles/'

Теперь, например, /posts/new становится /articles/new.

0 голосов
/ 16 ноября 2010

Из краткого прочтения руководства RoR по маршрутизации я думаю, что вам, возможно, придется попробовать:

resources :articles, :controller => "posts"

(http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use)

Возможно, вам также понадобится добавить :as => "articles", но этоnamed helper может быть уже настроен, так как вы добавляете :articles ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...