Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby on Rails可分离前部和后部;返回_Ruby On Rails_Frameworks_Jekyll_Frontend_Middleman - Fatal编程技术网

Ruby on rails Ruby on Rails可分离前部和后部;返回

Ruby on rails Ruby on Rails可分离前部和后部;返回,ruby-on-rails,frameworks,jekyll,frontend,middleman,Ruby On Rails,Frameworks,Jekyll,Frontend,Middleman,我使用RubyonRails已经有一年多了,我总是用一种随意的方式,我的意思是,所有东西都放在一个地方(前面和后面),使用由相关控制器方法填充的标准.html.erb文件 否则,今天在我们的项目中,出于多种原因(代码可维护性/清晰性、更好的体系结构、更高的反应性等),我需要将前端和后端分开 我做了很多,看了一些会议(,),但还没有找到解决方案。这似乎是一个经常出现的问题,但是分离RubyonRails应用程序的后端和前端的最佳实践/工具是什么 我觉得我们还不需要像React/EmberJS/An

我使用RubyonRails已经有一年多了,我总是用一种随意的方式,我的意思是,所有东西都放在一个地方(前面和后面),使用由相关控制器方法填充的标准
.html.erb
文件

否则,今天在我们的项目中,出于多种原因(代码可维护性/清晰性、更好的体系结构、更高的反应性等),我需要将前端和后端分开

我做了很多,看了一些会议(,),但还没有找到解决方案。这似乎是一个经常出现的问题,但是分离RubyonRails应用程序的后端和前端的最佳实践/工具是什么

我觉得我们还不需要像React/EmberJS/Angular/etc这样庞大的JS框架

首先,我想做一些类似于/的事情,并通过JSON和API调用进行通信,但对于动态网站来说,这似乎不是一个好的解决方案

那么,是否有一个前端框架可以很好地与Rails API配合使用,并且易于维护和升级(像gems一样向其添加特性/扩展)


谢谢你的见解。

我和这个问题的一位评论者有一个类似的设置

我使用Rails主要用于项目结构、定义一些页面布局和ActiveRecord

然后,我使用葡萄API框架定义了JSON API

我有一个SPA,写在AngularJS上,它位于public/folder中。它兼作我的手机应用,由phonegap提供。如果我的Angular应用程序不是我的移动应用程序的两倍,我可能只是使用资产管道来服务SPA。为了弥补这一点,我用Grunt编写了一个单独的构建任务,以便在将JS/CSS资产部署到生产环境之前缩小/丑化它们

我还使用舒适的墨西哥沙发作为静态内容页面


这需要一些尝试和错误,使事情正确,但总的来说,我发现这个设置服务于我相当好

我的一个朋友写了这篇关于Rails的优秀文章/教程,作为后端API

以及关于Rails/Ember.js的本教程

您可以了解它是如何实现的,并实现您首选的前端框架


希望能对这个问题有所启发

对于我目前正在进行的项目,类似API的后端基于Grape(Ruby的类似REST的API微框架),它非常好地补充了Rails,前端是Angular。通信通过API调用和JSON响应完成。虽然我不太确定Angular as front的效率,但我建议您考虑一下Grape,因为它的可读性和可维护性,它是后端的一个好选择。另一个选择是使用rails api,它是rails的精简版本,可以替代Grape。