【问题标题】:Ruby on Rails separate front & backRuby on Rails 前后分离
【发布时间】:2015-10-10 08:01:33
【问题描述】:

我已经使用 Ruby on Rails 一年多了,我总是以一种随意的方式使用它,我的意思是,一切都在一个地方(正面和背面),使用标准 .html.erb由相关控制器方法填充的文件。

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

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

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

首先我在想Middleman/Jekyll 之类的东西,并通过 JSON 和 API 调用进行通信,但对于动态网站来说,这似乎不是一个好的解决方案。

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

感谢您的见解。

【问题讨论】:

  • 对于我目前从事的项目,类似 API 的后端基于 Grape(Ruby 的类似 REST 的 API 微框架),它很好地补充了 Rails,前端是 Angular。通信是通过 API 调用和 JSON 响应完成的。虽然我不太确定 Angular 作为前端的效率,但我建议您将 Grape 视为后端的一个不错的选择,这要归功于它的可读性和可维护性。
  • 另一种选择是使用 rails-api,它是 rails 的剥离版本,作为葡萄的替代品。

标签: ruby-on-rails frameworks jekyll frontend middleman


【解决方案1】:

我的一个朋友写了这篇关于 Rails 作为后端 API 的精彩文章/教程。

http://blog.launchacademy.com/the-basics-of-building-an-api-in-ruby-on-rails/

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

https://github.com/diegodesouza/Project-Planner-EmberJS

您可以了解它是如何完成的,并实现您喜欢的前端框架。

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

【讨论】:

    【解决方案2】:

    我的设置与该问题的评论者之一类似。

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

    然后我使用 Grape API 框架定义了我的 JSON API。

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

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

    经过反复试验才能把事情做好,但总的来说,我发现这种设置对我来说非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 2016-02-26
      • 1970-01-01
      相关资源
      最近更新 更多