Rails 3.2.1 - Как и когда создаются помощники RESTful-маршрутов, такие как photos_path, new_photo_path, edit_photo_path - PullRequest
1 голос
/ 22 февраля 2012

Я новичок в изучении Ruby и Rails.

Я просматривал следующий раздел Rails 3.2.1 Guide:

http://guides.rubyonrails.org/routing.html#paths-and-urls

, в котором говорится:

Creating a resourceful route will also expose a number of helpers to the controllers   
in    your application. In the case of resources :photos:

photos_path returns /photos
new_photo_path returns /photos/new
edit_photo_path(:id) returns /photos/:id/edit (for instance, edit_photo_path(10) returns /photos/10/edit)
photo_path(:id) returns /photos/:id (for instance, photo_path(10) returns /photos/10)

Мне любопытночтобы узнать, как и когда в жизненном цикле запроса создаются эти помощники, т.е. new_photo_path, edit_photo_path и т. д., и где в исходном коде я могу найти код, который делает то же самое.

Я просматривал код в следующем файле / gems / actionpack-3.2.1 / lib / action_dispatch / routing / mapper.rb и я предполагаю, что код в этом файле создаетсяВышеперечисленные помощники. Пожалуйста, поправьте меня, если я ошибаюсь.

Спасибо,
Jignesh

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

По сути, да, это правильно. Для получения дополнительной информации вы должны ознакомиться с серией Routing Walkthrough , которую Райан Бейтс сделал в сентябре прошлого года, где он просматривает код Rails, управляющий маршрутизацией.

0 голосов
/ 22 февраля 2012

Если вы используете генераторы (например, rails g controller NewController), помощники создаются автоматически и помещаются в . / App / helpers с аналогичной номенклатурой.Если вы выполняете контроллеры вручную, вам нужно создать свой собственный, например, new_helper.Хотя по умолчанию все контроллеры загружают application_helper.rb.

Если вы не собираетесь использовать вспомогательный метод в более чем одном контроллере / представлении, лучше всего поместить его в собственный вспомогательный файл.Это руководство может помочь объяснить это подробнее.

Обновление Вспомогательные методы написаны вами на основе ваших потребностей.Код для вспомогательного генератора можно найти здесь

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