Предисловие:
В моем приложении у меня есть модель с именем Order
, которая содержит стороннюю order_id
, которую мне нужно проверить перед сохранением. Чтобы проверить правильность идентификатора, я вызываю API для их конечной точки проверки заказа.
Вопрос:
Где именно я должен выполнить эту проверку в приложении rails? Моим первым логическим выбором был контроллер:
def create
order_id = params[:joint_membership_application][:order_id]
# API call to check order status, true = order ID is verified
if @client.order_valid?(order_id)
@membership_app = JointMembershipApplication.create!(membership_app_params)
# ...
end
Но я всегда читаю, что бизнес-логика c должна жить внутри моделей, а не контроллеров. Будет ли плохой практикой делать вызов API внутри before_save
обратного вызова для модели? Если бы я поместил этот лог c в модель, мне нужно было бы создать экземпляр API-клиента при сохранении, что кажется немного странным.
Я вполне мог бы переосмыслить это, но хотел услышать от людей с рельсами опыт того, где именно я должен выполнять такую проверку. Спасибо!