Ruby on rails 我如何从Rails获取AJAX数据并将其渲染回Rails?
在过去的几个月里,我一直在做的项目已经有了很多形式,但它最近的一个版本是一个RESTfulRails后端,前端有React、Jade和Express。这很好,因为React和Jade在前端处理任何数据渲染,它允许我们将请求从一个单一请求分解为大约三个小得多的请求 现在的任务是将视图组件合并到Rails中,而这正是我遇到的问题 正如我之前所说的,世界是不同的——RESTfulRails路线在围栏的一边,客户端在另一边,这意味着AJAX请求是唯一的游戏。以下是一些示例路线:Ruby on rails 我如何从Rails获取AJAX数据并将其渲染回Rails?,ruby-on-rails,ajax,reactjs,Ruby On Rails,Ajax,Reactjs,在过去的几个月里,我一直在做的项目已经有了很多形式,但它最近的一个版本是一个RESTfulRails后端,前端有React、Jade和Express。这很好,因为React和Jade在前端处理任何数据渲染,它允许我们将请求从一个单一请求分解为大约三个小得多的请求 现在的任务是将视图组件合并到Rails中,而这正是我遇到的问题 正如我之前所说的,世界是不同的——RESTfulRails路线在围栏的一边,客户端在另一边,这意味着AJAX请求是唯一的游戏。以下是一些示例路线: v1/property
- v1/property/:字段
- v1/属性2/:字段
- v1/属性3/:字段
- 在搜索模块的JS文件中,在提交时,创建一个名为
的新事件doingSearch
- 使用此事件提供我从搜索模块的
标记收到的信息,如果没有其他内容,则返回其占位符值 - 在
中,我监听此事件并发出两个AJAX请求:\u property.js.erb
- 第一个请求是到端点,
,如果成功,第二个请求是一个POST,它将发送到一个route/board/:field/handle\u POST。这里的信念是,我对这条路线有更多的控制权,并且可以支配这里呈现的内容v1/property/:field
- 第一个请求是到端点,
- 然后在
的末尾呈现\u property.js.erb
,但为了简单起见,我更希望将JSON数据传递到\u property.html.erb
中,就好像它是一个Rails模型一样。如果可能的话,合乎逻辑的解决方案是在提交POST请求后提交视图,但这是另一个症结所在——我不清楚如何处理这个问题\u property.html.erb
我将如何实现这一点?如果您正在处理数据,您将希望使用通量模式。下面是React.14/ReFluxSuperAgent中的一个示例。store处理启动ajax请求的操作。util/api.js处理ajax请求。basic.store通过来自util/api.js的操作接收数据,并通过事件将数据传递给控制组件。然后,控制组件可以将相关数据作为道具传递给其他组件。这些组件可以触发api.store侦听的事件
从“回流”导入回流;
从“/Actions”导入操作;
从“/../utils/api.js”导入ApiFct;
让ApiStoreObject={
新数据:{
“反应版本”:“0.14”,
“项目”:“ReFluxSuperAgent”,
“currentDateTime”:新日期().toLocaleString()
},
可收听者:行动,
apinit(){ApiFct.setData(this.newData);},
apinitdone(){ApiFct.getData();},
apiSetData(数据){ApiFct.setData(数据);}
}
const ApiStore=reflow.createStore(ApiStoreObject);
导出默认存储代码>这看起来很激烈,但不能保证我会使用React来实现这一点。我的目标是看看是否有一个以Rails为中心的解决方案。