0

我正在尝试确定在我的应用程序中管理 Ruby on Rails 和 React 的更好方法。我正在使用 RoR 5 和 gem react_on_rails,这对我来说一切正常。问题是我是否应该使用 RoR 构建一个 REST API,然后通过 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) %>

我知道控制器的逻辑不应该同时管理两个变量。这意味着我不能将两张表放在一个地方,我必须处理模型上的业务逻辑。

在这种情况下,即使我重载控制器,通过 REST API 或控制器道具处理 React 道具的最佳方法是什么?

4

1 回答 1

1

IMO,您应该在控制器上使用序列化程序并将全局变量数据附加到序列化程序响应。这将防止大量无关值逃逸到客户端。

如果您必须保持 API 的纯净和宁静,请使用 CRA 制作一个 Node 应用程序,并让它与您的 rails 5 API 对话,并通过您的 react 组件上的 componentDidMount() 进行 2 次调用。

于 2018-12-03T00:21:34.303 回答