В Ruby on Rails, route.rb, если map.something создаст что-то_путь и нечто_url, создаст ли map.connect что-то подобное? - PullRequest
0 голосов
/ 12 июня 2010

В Ruby on Rails, route.rb, если мы создаем «именованный маршрут»

map.something ":a/:b", :controller => 'foobar'

также создаст something_path и something_url, которые являются двумя методами, используемыми в контроллере и в представлении. map.connect тоже создает что-то подобное? В противном случае, не является ли map.connect несколько невыгодным в этом смысле? Я проверил, что connect_path и connect_url оба не создаются автоматически.

Ответы [ 2 ]

1 голос
/ 12 июня 2010

Вы правы в своем мышлении.map.connect не создает something_path и something_url.Это цель именованных маршрутов, например map.something: для создания «имен», отсюда и название «именованных маршрутов».

0 голосов
/ 12 июня 2010

Именованный маршрут можно рассматривать как именованный map.connect маршрут. map.connect просто устанавливает маршрут, который указывает на действие внутри контроллера. Но было бы больно называть маршрут снова и снова повсюду. Использование именованного маршрута более читабельно. Преимущество map.connect заключается в том, что его можно подключить к любому действию контроллеров. Если вы внимательно прочитаете файл rout.Rb, вы увидите, что следующие два оператора имеют самый низкий приоритет:

Note: These default routes make all actions in every controller accessible via GET requests. You should
consider removing or commenting them out if you're using named routes and resources.
    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

Если вы закомментируете две вышеупомянутые строки, вы не сможете достичь ни одного маршрута, кроме тех, которые вы определили, используя именованные маршруты / ресурсы.

...