Реагируйте на 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() на вашем реактивном компоненте.

Другие вопросы по тегам