1

我是 Ruby on Rails 的新手,我试图在简单的博客示例之外了解它的用法。

  1. 看起来 Rails 使与表单交互和接收/保存对象到数据库变得容易。我在“twitter”或“blog”类型的应用程序中得到了这个。但是更真实的世界类型的例子呢?假设我们构建了一个主页,其中包含登录/注册的大部分静态信息(w/设计和 OmniAuth)。

    一个。我需要一个“家庭”控制器吗?
    湾。就此而言,我是否需要一个与网站上每种类型的网页相对应的控制器(假设页面不是 100% 静态的,在这种情况下它将位于 /public 中)?

  2. 如果在您登录后用户被带到一个使用图表、数据表和地图的功能丰富的页面怎么办?也许这三件事需要来自 3 个不同模型的数据。这要怎么做?我想在这种情况下会有很多客户端逻辑(如 Kendo UI 或 Jquery)。所以我想rails应用程序基本上会变成一个json API?如果一个页面将有很多客户端的奇思妙想... rails 是正确的后端吗?

抱歉这些愚蠢的问题。我没有 Rails 导师。

4

4 回答 4

1
  1. a) 您不需要“家庭”控制器。但是,您应该有一些控制器来处理“根”路径作为登录页面/仪表板,而“主”控制器可以很好地处理这个问题。

    b) 您将需要一个控制器来处理每个概念类别或资源(如在 REST 中),但不一定每个页面都有一个控制器。例如,所有“帮助”页面都可以由单个控制器处理。

  2. 图表的底层数据可以与初始页面一起构建,或者更常见的是通过 ajax 从控制器操作构建。控制器操作将负责收集和返回适当的数据。然后,您可以使用客户端 api(例如谷歌图表)来构建可视化图形,或者您可以使用帮助模块在服务器端构建并返回所需的图像或 HTML/JS/CSS 来表示图形。

如果一个页面将有很多客户端的奇思妙想... rails 是正确的后端吗?

这个问题会让你在 SO 上遇到麻烦 :)

但是,可以说它与用于封装客户端“whiz-bang”库的任何其他框架一样好。

于 2012-11-16T03:22:09.837 回答
1

我一直在使用基于表单的管理区域和用于一般用户前端的单页应用程序的 Rails 单页 Web 应用程序。

对于单页应用程序,Rails 提供 RESTful API (JSON) 来提供数据,其中表示逻辑使用 Javascript 实现,并使用 Backbone.js 以更接近 MVC 模式的方式组织。

对于你的问题 1)

a) 对于使用 Devise 的身份验证,您可能需要一个控制器来解释登录请求,但对于后续请求,您可以决定您的基本路由和控制器映射是什么。

b) 不!您不需要为网站上的每个网页使用单独的控制器。您可以使用相同的控制器并根据请求方法和参数呈现不同的视图。

2) 如果您在不同的模型中为每个图形、数据表和地图获取数据,一种方法是实现一个控制器,该控制器从每个模型中查询数据并以合适的方式为每个 UI 元素进行准备。为此,最简单的方法是在 JSON 中呈现视图,以便为 UI 组件绑定数据。

如果您想以灵活的方式呈现 JSON,https://github.com/nesquena/rabl将是一个不错的选择。

目前,我正在使用 Rails 进行一个项目(大约两年前),并且 RESTful JSON API 仍在不断发展,没有重大挑战。

于 2012-11-16T03:25:35.063 回答
1

如果一个页面将有很多客户端的奇思妙想... rails 是正确的后端吗?

Rails 可以作为具有大量客户端代码的应用程序的后端。在某些时候,您(可能)需要进行一些基本的用户管理和身份验证,以及获取和发送某种持久性数据,这样 Rails 本身就不会“出错”。有人可能会争辩说,如果您打算使用 Ruby,则使用诸如Sinatra之类的更轻量级的框架,或者如果您真的只是要创建一个像Bottle (Python) 或node.js + express的 Javascript 堆栈这样的框架,将更适合您。 RESTful API + 一些登陆页面,但 Rails 也可以完美地做到这一点,并且有很多其他功能可供您在时机成熟时使用。

于 2012-11-16T03:33:22.600 回答
0

感谢上面的好答案。

实际上,我刚刚看到一个视频,它很好地回答了我的问题。我把它贴在这里是为了那些可能会好奇的人:

http://ontwik.com/ruby/building-rails-apps-for-the-rich-client/

于 2012-11-16T04:38:39.787 回答