| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby: Общие вопросы > Каким образом RoR изменяет HTTP заголовок? и др. |
| Автор: pupadupa 9.12.2008, 21:19 | ||||
| Добрый вечер. Возник вопрос: Каким образом RoR изменяет HTTP заголовок? ...и несколько других вопросов (см. ниже) Исходя из REST (http://www.taknado.com/2007/8/31/rest-on-rails) , то чтобы запустить Destroy клиент должен отправить ссылку на объект (ресурс) + DELETE (в HTTP заголовке). Пример: из файла index.html.erb
сервер генерит для клиента HTML-код:
Вопросы: 1) Непонятно где менятется HTTP заколовок например на delete ? в javascript коде не разобрался, самое похожее там это m.setAttribute('value', 'delete'); но что в этой строке делается - непонятно. 2) Edit делается просто по ссылке (/molokos/4/edit), а почему не сделать, чтобы и delete был по ссылке, по наналогии /molokos/4/delete ? Я понимаю, что в этом подход REST, но не вижу необходимости так заморачиваться, возможно там есть скрытый/глубокий смысл в необходимость использовать изменение HTTP заголовка вместо использования /molokos/4/delete 3) Методы edit_moloko_path(moloko) и new_moloko_path понятны. Есть где-нить описания методов этих (и других им подобных) ? Откуда эти методы определяют путь, может в каком файле прописано ? Спасибо. З.Ы. Прошу прощения за вопросы глупые, но учить RoR начал недавно, а разобраться хочется детально. Надеюсь Ваши ответы также помогут в будущем новым новичкам |
| Автор: pupadupa 10.12.2008, 16:44 |
| Спасибо! Буду разбираться в дальше. Вот ещё мне ответили в гугл группе "RubyOnRails to russian" (кому-нить ещё пригодится): "...The PUT and DELETE methods are not always implemented by web clients. And some firewalls block their use..." "There is just one difference: because of the problems with HTTP's PUT and DELETE methods (mentioned above), Rails permits these communications to be transmitted using POST provided the data has a field called _method that is set to either put or delete" f.method = 'POST'; // ПОСТим // создаем хайден вар _method и присваеваем ей значение нужного хедера. var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); > 3) Методы edit_moloko_path(moloko) и new_moloko_path понятны. Есть где- нить описания методов этих (и других им подобных) ? Откуда эти методы определяют путь, может в каком файле прописано ? rake routes еще. по 2-му пункту почитайте http://www.oucs.ox.ac.uk/rails/howtos/rest/handout.pdf |