![]() |
|
![]() ![]() ![]() |
|
pupadupa |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
Добрый вечер.
Возник вопрос: Каким образом 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 - 9.12.2008, 21:27 |
||||
|
|||||
source777 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Угу, этот скрытый смысл является одним из основных правил веб-программирования, которое обязан знать каждый веб-программист: метод GET применяется для запросов, не меняющих информацию на сервере, и больше не для чего!!! http://www.w3.org/2001/tag/doc/whenToUseGet.html
Тут дело не в RoR, а в том, что ты не знаешь основ HTTP и REST, а без этой базы RoR начинать изучать не очень разумно... Это сообщение отредактировал(а) source777 - 10.12.2008, 13:52 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||
|
|||||||
pupadupa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
Спасибо!
Буду разбираться в дальше. Вот ещё мне ответили в гугл группе "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 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Ruby: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |