Я использую Shippinglogic для сбора информации для отслеживания отправленных номеров отслеживания.
Я занимаюсь рядом вещей за кулисами пользовательского интерфейса, но не уверен, как это правильно организовать.
Итак, вот поток:
- Пользователь отправляет номер отслеживания либо через ввод формы, либо через URL-адрес (example.com/track/1234567890). Если номер еще не существует в базе данных, происходит следующий шаг ...
- После того, как номер отправлен, я проверяю его с помощью некоторой логики, чтобы определить, кто является перевозчиком (UPS, FedEx, USPS, DHL и т. Д.). Пользователь никогда не указывает ... все это делается автоматически.
- После определения перевозчика мне нужно сделать фактический вызов API перевозчика (через Shippinglogic), чтобы получить информацию для отслеживания.
- После того, как я получу данные отслеживания, мне нужно сохранить их в базе данных.
- Затем данные отслеживания, наконец, возвращаются пользователю.
Поскольку пользователи могут отправлять либо через форму, либо через URL-адрес (без каких-либо действий POST), я пытаюсь запустить все это через свой show
метод в контроллере, где я проверяю, существует ли номер, а если нет, отправляю его через Number.create(:tracking_number => '1234567890')
но как только я попадаю в модель, я просто теряюсь в том, что делать дальше.