2009-08-24 3 views
1

Когда я делаю маршруты рейка, я вижу, что вспомогательные методы доступны для определенных действий REST для моей модели пользователя, такой как new_user, edit_user, поэтому я могу использовать такие методы, как new_user_path, edit_user_path и т. Д., Но они недоступны для обновления или уничтожения действий. Чтобы вызвать действие уничтожения, я должен сделать что-то вроде этогоМетоды Rails для определенных действий REST

link_to ‘Destroy’, user_path, :method => :delete 

Кто-нибудь знает, почему это так?

ответ

1

Просто потому, что нет необходимости. Комбинации http-глагола и URI должно быть достаточно, чтобы определить, является ли это обновлением или уничтожением действия. вот список http-глагола и URI-комбинации от rails guide, из которых вы можете видеть, что «обновление» и «уничтожить» используют тот же URI, что и «show», единственное отличие - это http-глагол.

GET/фотографии Фотографии индекс
дисплей список всех фотографий

GET/фотографии/новые Фотографии новых
возвращение HTML-форму для создания новой фотографии

POST/фотографии Фотографии создание
создание новой фотографии

GET/фотографии/1 Фотографии показывают
дисплей конкретный фото

GET/фотографии/1/редактировать Фотографии редактировать
возвращение HTML-форма для редактирования фото

PUT/фотографии/1 фотографии обновления
обновления конкретного фото

УДАЛЕНИЯ/фотографии/1 Фотографий уничтожить
удалить конкретную фотографию

+0

Хотя «обновление» и «уничтожить» используют тот же URI, что и «показать», для обеспечения согласованности я бы сказал, что лучше иметь соответствующее обновление и уничтожить вспомогательные методы, это что я искал изначально и не мог работать, пока не увидел сообщение о том, как стиль метода вызывает «обновление» и «уничтожение». – Bob