Вместо выполнения платежа через before_create
может оказаться более целесообразным выполнить платеж как часть проверки.Возможно, он будет работать идентично, но сообщение, которое он посылает программисту, состоит в том, что проверка - это ряд требований, которые должны быть выполнены, прежде чем объект модели может быть сохранен, и before_create
может позаботиться о предварительных требованиях, которые необходимо выполнить.выполняется для создания конечной модели.
Кроме того, если вы когда-либо обновите объект модели, он может изменить модель настолько, чтобы потребовать повторной проверки, но before_create
не поймет это.
Конечно, по сравнению с вашим оригинальным механизмом, это, вероятно, огромное улучшение почти во всех отношениях - оно позволит использовать вашу модель вне оригинального контроллера, не отдавая продукт / контент пользователям, которые не заплатили.(Скажем, если вы предоставляете интерфейс SOAP, XMLRPC, email или REST, который не проходит через ваш контроллер.)