Ruby on rails 使用Rails API对Rails gem作出反应

Ruby on rails 使用Rails API对Rails gem作出反应,ruby-on-rails,reactjs,rails-api,react-on-rails,Ruby On Rails,Reactjs,Rails Api,React On Rails,我试图在Rails API上运行React。我创建了带有--api标志的Rails应用程序,这样我就可以尽可能地简化它,并且我选择了react_on_Rails gem使react在此基础上工作,因为它似乎是一种很好的分离客户端和服务器应用程序的方法 我按照上的教程进行了操作,但当我尝试访问URLhttp://localhost:5000/hello_world运行Foreman后,我得到以下信息: 19:34:58 web.1 | Started GET "/hello_world" f

我试图在Rails API上运行React。我创建了带有
--api
标志的Rails应用程序,这样我就可以尽可能地简化它,并且我选择了react_on_Rails gem使react在此基础上工作,因为它似乎是一种很好的分离客户端和服务器应用程序的方法

我按照上的教程进行了操作,但当我尝试访问URL
http://localhost:5000/hello_world
运行Foreman后,我得到以下信息:

19:34:58 web.1    | Started GET "/hello_world" for 127.0.0.1 at 2017-03-07 19:34:58 +0000
19:34:58 web.1    | Processing by HelloWorldController#index as HTML
19:34:58 web.1    | Completed 204 No Content in 0ms (ActiveRecord: 0.0ms)
我很确定我得到这个响应的原因是,由于API模式,Rails没有遍历所有资产管道,也没有呈现
index.html.erb
视图

所以我的问题是,我可以通过React_on_Rails gem让Rails API与React一起工作吗?或者我是否需要更改配置,以便Rails应用程序停止在“API模式”下工作?或者我可以调整gem的配置以正常工作,尽管我在文档中找不到任何东西

我的
hello\u world\u controller.rb
controller,使用
rails在rails上自动生成generate react\u:install
如下所示:

class HelloWorldController < ApplicationController
  def index
    @hello_world_props = { name: "Stranger" }
  end
end
类HelloWorldController

非常感谢所有的帮助和指导,因为我不是这些工具的专家。谢谢

React on Rails最终通过Rails的视图层为Web包包提供服务。因此,不,它不能只在开箱即用的情况下使用api。

您的控制器看起来如何?204无内容不是真正的错误,它是一个成功状态代码,表示除了状态之外,服务器响应时没有任何内容。但是我假设,如果您使用--api生成rails应用程序,然后使用任何rails生成器生成控制器,它将不会响应html请求,因此不会呈现index.html.erb,这毫无意义。您不应该试图将
--api
与提供非api内容的应用程序混合使用。@meagar是的,我有点确信这就是问题所在,因为我猜在这种情况下Rails应用程序的行为并不仅仅是一个api,由于客户端代码由webpack处理,然后由app呈现,我认为它不作为Api的原因是react\u on\u rails生成了一个服务器端视图(我猜它随后使用了一些助手来呈现react组件)。如果rails只是提供一个api,所有客户端逻辑都发生在react中,那么您可能不需要像react\u on\u rails或react rails这样的gem。最近有人写了一篇关于rails api和react的非常好的教程,Propable将帮助您使用rails和react。