Я делаю какой-то проект с использованием Ruby on Rails с React.Я использую react-rails
драгоценный камень.У меня есть несколько вопросов о том, как правильно спроектировать архитектуру приложений Rails и React.Мой вопрос в основном о передаче данных между Rails и React.
Я знаю, что в основном есть два подхода к этому.Первый и наиболее распространенный способ - это отдельный API в Rails и приложение внешнего интерфейса в React.Это приносит некоторые плюсы и минусы.Мне пришлось бы разрабатывать и поддерживать два отдельных приложения, но в будущем я мог бы легко повторно использовать существующий API для других вещей, таких как мобильное приложение.Таким образом, мой интерфейс React запрашивает у Rails API данные.
Второй способ и способ, который я выбрал, - это разработка монолитного приложения с использованием встроенного в Rails webpacker
, react-rails
или react-on-rails
.Таким образом, я могу просто получить данные в моем контроллере Rails
@foo = Model.find(id)
и передать их моему компоненту React в представлении
=react_component("Foo", {foo: @foo})
, но проблема началась, когда я получил еще немногосложная модель с большим количеством зависимостей.Например, допустим, у меня есть модель:
class Foo < ApplicationRecord
belongs_to: :user
has_many: :bar #which is some nested resources
, и теперь я хочу создать индексную страницу модели Foo
, которая будет отображать все данные Foo's
, user
и подключенные к ним Bar's
.В чистом приложении Rails я могу просто спросить в контроллере @foo
, а позже просто введите @foo.user.nick
.Но когда я использую реагирование, мне нужно получить всю эту информацию в моем контроллере, а затем передать ее компоненту React с помощью props
, что, на мой взгляд, вызывает много беспорядка.
И вот мой вопрос: как правильно передавать данные между Rails и React?