Рельсы динамических путей

20

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

    
задан LuckyLuke 08.08.2012 в 13:12
источник

3 ответа

36

Этот раздел может быть полезен Ссылка

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 )

    
ответ дан evfwcqcg 08.08.2012 в 13:24
9

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

rake routes

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

    
ответ дан thorsten müller 08.08.2012 в 13:21
  • вот подробное объяснение того, какие рейк-маршруты дают вам –  Amit Patel 08.08.2012 в 13:27
  • Я не вижу, как это показывает, что я могу передать в качестве аргументов помощнику и т. д.? –  LuckyLuke 08.08.2012 в 14:22
  • @Dude, см. мое обновление –  evfwcqcg 08.08.2012 в 15:46
0

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

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: маршруты, чтобы узнать, что генерируется.

    
ответ дан Shailen Tuli 08.08.2012 в 13:24