Неявное создание помощников - Routes.rb и операторов 'Match' - PullRequest
3 голосов
/ 03 июня 2011

Я читаю Оби Фернандеса "The Rails 3 Way", и есть кое-что, что я не уверен, что правильно понял.Я новичок в рельсах, и хочу убедиться, что я правильно понимаю.У меня есть некоторый опыт работы с ванильным рубином.Не много, но немного.

Текст, о котором идет речь, выглядит следующим образом: (относительно маршрутизации и файла config / rout.rb)

"...

Путем созданиямаршрут, подобный

match 'auctions/:id' => "auction#show", :as => 'auction'

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

link_to item.description, auction_path(item.auction)

... "

Мой вопрос, в частности, какая частьmatch 'auctions/:id' => "auction#show", :as => 'auction' создает вспомогательные функции?(например, link_to auction и auction_path()) Это часть :as => 'auction'?Будут ли созданы какие-либо помощники без добавления :as => 'auction'?

Моя путаница проистекает из других руководств, которые я видел, где это опущено, и все же помощники, кажется, создаются независимо.Что конкретно использует rails в операторах match в файле rout.rb для создания помощников?Если это не часть :as => 'auction', то какова конкретная цель добавления этого в оператор match?

Я знаю, что это кажется суперосновным вопросом, но эта деталь, кажется, затушевываетсяв текстах, которые я прочитал до сих пор.Заранее спасибо за любой свет, который вы можете пролить на это.

Ответы [ 2 ]

2 голосов
/ 09 декабря 2012

Я только что попробовал это:

match "alfa/beta", to: 'users#new'

В этом случае, даже без :as => 'named_route', я получил бесплатно следующий помощник

alfa_beta_path

, что, как ожидается, указывает на users#new. Таким образом, создается впечатление, что помощники также автоматически генерируются путем синтаксического анализа строки маршрута, если нет спецификации :as.

1 голос
/ 03 июня 2011

Да, именно часть :as => 'named_route' создает именованный маршрут (который, в свою очередь, создает помощников). Что касается его отмены, вы имеете в виду случаи resources :something в routes.rb? Метод resources автоматически генерирует набор помощников по URL на основе имени ресурса.

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