2010-10-11 4 views
26

Я пытался перенаправить на другую страницу после редактирования записи, я предположил, что она использует код обновления, потому что вы обновляете базу данных. Мне потребовалось некоторое время, чтобы понять, что я использовал неправильное действие в контроллере. Может кто-нибудь объяснить, как работают редактирование и обновление. Почему существуют два разных действия? каковы различия между ними?Restful Rails Edit vs Update

+0

У меня есть задачи, которые могут быть разбиты на две разные категории. Я создал контроллер для каждой категории, который ссылается на одну и ту же модель для задач. когда я отправляю форму редактирования, она перенаправляет обратно на главный диспетчер задач, показывает действие. Кажется, что мы пропускаем контроллер com_tasks все вместе (com_tasks = один из контроллеров категорий). Я просмотрел вывод html, который отображается, и форма отправляется на неправильный контроллер, но я не вижу никакого способа изменить это. – Rumpleteaser

ответ

47

редактировать действие отвечает за рендеринг вида

действия обновления отвечает за взаимодействие с моделью (дб обновления и т.д.)

При запуске rake routes вы увидите разницу между глаголом и действие. Как правило, при создании формы используются действия create/update. Это отличается от новых действий и действий редактирования, поскольку они используются для визуализации представления (которое отображает форму, которая должна быть отправлена).

+0

в каком порядке они называются? в каком процессе он проходит? изменить -> обновить -> изменить? Если я поставлю переадресацию в редакторе, он не получит обновления? – Rumpleteaser

+0

Правильно. Если вы хотите перенаправить кого-то * после *, они обновили запись, вы добавили перенаправление в действие обновления. – theIV

+1

Итак, всего 2 события в этой цепочке: отредактируйте, который отображает форму, а затем обновляется, когда пользователь ее отправляет. Если вы переадресовываете_двигаться на другую страницу (по умолчанию часто отображается представление в эшафоте), тогда у вас будет третий. –

13

Другая перспектива - немного избыточен, чтобы выделить общие черты и различия:

Новый является действие предвестником визуализации формы, что при подаче, бежит Создать действие. (вид, как правило, перенаправляется обратно в индексном показывает список похожих элементов, которые уже созданный)

Редактировать это действие предвестника визуализации формы, что при подаче, запускает Update действия , (вид, как правило, перенаправляется обратно в индексный указатель, отображающий список похожих предметов, которые вы уже создали )