Реагируйте на Rails REST API против контроллеров
Я пытаюсь решить, что является лучшим подходом для управления Ruby on Rails и React в моем приложении. Я использую RoR 5 и драгоценный камень react_on_rails
что делает все работает нормально для меня. Вопрос заключается в том, должен ли я создать REST API с RoR, а затем получить к нему доступ через React, чтобы контролировать поведение компонентов, которые мне нужны.
Проблема, которую я нашел, и я не мог найти решение в настоящее время, состоит в том, что я не могу поставить реквизиты от контроллера, в котором у меня есть два разных реквизита. Например,
class FooBarsController < ApplicationController
def index
@product_props = Product.all
@testimonial_props = Testimonial.all.where('featured', [true])
end
end
Это то, что я делаю в представлении
<%= react_compontent('FooBarProduct', props: @product_props) %>
<h2>Title</h2>
<%= react_compontent('FooBarTestimonial', props: @testimonial_props) %>
Я знаю, что логика контроллера не должна управлять двумя переменными одновременно. это означает, что я не могу поместить свои две таблицы в одно место, и мне приходится обращаться с бизнес-логикой в модели.
В этом случае, как лучше всего обрабатывать реквизиты React через REST API или контроллеры, даже если я перегружаю контроллер?
1 ответ
IMO, вы должны использовать сериализатор на ваших контроллерах и прикрепить данные глобальной переменной к ответу сериализатора. это предотвратит попадание тонны посторонних значений в клиент.
Если вы хотите, чтобы ваш API был чистым и спокойным, создайте приложение Node с CRA и поговорите с вашим rails 5 API и сделайте 2 вызова через componentDidMount() на вашем реактивном компоненте.