Из Википедии: Ruby on Rails , или Rails, - это инфраструктура веб-приложений на стороне сервера, написанная на Ruby по лицензии MIT. Rails - это структура модель-представление-контроллер (MVC), предоставляющая структуры по умолчанию для базы данных, веб-службы и веб-страниц. Он поощряет и облегчает использование веб-стандартов, таких как JSON или XML, для передачи данных ...
Таким образом, вы можете рассматривать его как бэкэнд (сервер), с которого вы будете выставлять REST API.
Из Википедии : Angular (обычно называемый «Angular 2+» или «Angular v2 и выше») - это интерфейсное веб-приложение с открытым исходным кодом на основе TypeScript Платформа во главе с Angular Team в Google и сообществом частных лиц и корпораций. Angular - это полное переписывание от той же команды, которая создала AngularJS.
Таким образом, вы можете рассматривать его как интерфейс (клиент), из которого вы будете использовать REST API, предоставляемый вашим сервером.
Теперь, когда мы поняли подводную черту между сервером и клиентом, давайте теперь попробуем понять, как вы сможете вызывать свой контроллер rails из Angular одним нажатием кнопки.
Angular будет иметь Компонент, который будет иметь шаблон, содержащий эту кнопку. Когда пользователь нажимает на эту кнопку, он вызывает метод из класса TypeScript
компонента.
Этот метод вызовет другой метод из Angular Service, в который будет добавлено HttpClient
в качестве зависимости. Из метода Angular Service мы получим доступ к вашему API, который предоставляется из вашего бэкэнда, построенного на Ruby on Rails. Этот маршрут API в свою очередь вызовет ваш Rails Controller.
Предметы для вас после этой теории:
- Попробуйте предоставить REST API из вашего бэкэнда Ruby on Rails. Это попадание API должно вызвать ваш Rails Controller. Я думаю, что эта статья на Scotch.io поможет.
- Попытайтесь понять, как выполняются вызовы API в Angular. Вы получите много статей / видео / ресурсов об этом в Интернете. У меня есть видео об этом на YouTube, которое, надеюсь, поможет вам начать работу.
Пожалуйста, прокомментируйте, если у вас есть другие сомнения.
Надеюсь, это поможет.