Если это метод контроллера, вам нужно, чтобы render
был последним вызовом, а не company.send
def create_company
begin
company = current_user.company
result = company.create_users
company.send_email(result[1])
render(json: {message: result[0]}, status: :ok)
rescue => e
render(json: { error: e.message }, status: :unprocessable_entity)
end
end
edit Основываясь на ваших комментариях,Я вижу, что вы хотите, чтобы работа с электронной почтой прекратилась после рендеринга.Для этого вам нужно настроить асинхронную службу.В зависимости от того, используете ли вы рельсы и какую версию, вы можете использовать ActiveJob .Сам по себе это процесс настройки, если вы никогда не делали этого раньше, поэтому вам нужно прочитать об этом.
Ваш метод контроллера будет выглядеть следующим образом
def create_company
begin
company = current_user.company
result = company.create_users
company.send_email(result[1]).deliver_later
render(json: {message: result[0]}, status: :ok)
rescue => e
render(json: { error: e.message }, status: :unprocessable_entity)
end
end
deliver_later
- это метод активной работы, который можно вызвать при отправке электронного письма, если у вас настроена активная работа.