Черновик - это просто сообщение, которое еще не было отправлено, и, возможно, оно не завершено.
Я предлагаю добавить в сообщение логический атрибут 'sent'.Если вы сохраняете объект с помощью 'sent = false', тогда вы выполняете только частичные проверки (если они вообще есть).Таким образом, вы справились с проблемой «сохранения черновика».
Если вы сохраняете сообщение с помощью «sent = true», вы запускаете полную проверку, сохраняете объект в базе данных и фактически отправляете его.
Не думайте о методе create как о другом слове, равном «send».Вы отправляете сообщение, когда сохраняете его в состоянии, позволяющем отправить его.При этом не имеет значения, помечает ли пользователь сообщение как готовое при его создании или обновлении.Обрабатывайте его на уровне модели.
Чем отличается «предварительный просмотр» по функциональности от простого чтения сообщения?Стандарт GET /messages/1
должен быть в порядке.
Об ответе.Что отвечает?Это просто создание нового сообщения с некоторыми предопределенными полями.Сделайте так, чтобы ваше действие :new
распознало дополнительные параметры и предоставило ссылку на все связанные представления, например:
<a href="/messages/new?to=john@example.com&in-reply-to=<1234...>">Reply</a>