it-swarm.com.ru

Динамические пути помощников рельсов

Какие пути автоматически добавляются в Rails? Допустим, у вас есть ресурс Вопросов, который вы автоматически получаете questions_path, question_path и т.д. Где я вижу, к чему они обращаются и что я получаю?

22
LuckyLuke

Этот раздел может быть полезен http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use

Verb    Path              Action     Helper

GET     /photos           index      photos_path
GET     /photos/new       new        new_photo_path
POST    /photos           create     photos_path
GET     /photos/:id       show       photo_path(:id)
GET     /photos/:id/edit  edit       edit_photo_path(:id)
PUT     /photos/:id       update     photo_path(:id)
DELETE  /photos/:id       destroy    photo_path(:id)

Если вы хотите создать помощника для действия show, вы можете написать 

photo_path(@photo.id)

где @photo - это объект вашей модели. Или вы можете передать @photo напрямую, если он отвечает на метод id.

photo_path(@photo)
edit_photo_path(@photo)

Вы также можете загрузить Rails console (в терминале) и проверить маршруты, используя app, например, app.photo_path(1) (он покажет вам маршрут для фотографии с id равным 1)

40
evfwcqcg

Просто используйте:

rake routes

Это перечислит все определенные маршруты. Первый столбец актуален для вас помощников пути.

9
thorsten müller

Если в вашем файле маршрутов есть следующее:

resources :questions

Тогда Rails предоставит вам следующие маршруты отдыха:

GET     /questions          index       list of questions
GET     /questions/new      new         show new question form
POST    /questions          create      create a new question
GET     /questions/:id      show        show a specific question
GET     /questions/:id/edit edit        show form to edit question
PUT     /questions/:id      update      update a specific question
DELETE  /questions/:id      destroy     delete a specific question

Вы также можете запустить Rake: маршруты, чтобы увидеть, что генерируется.

0
Shailen Tuli