1

我是 Ruby 和 Rails 的新手。我玩过 Sinatra,但我认为 Rails 对我的项目来说是一个更完整的框架。但是,我遇到了麻烦。

我正在使用一个相当大量的现有且大量使用的 mySQL 数据库,并且我正在尝试为此构建一个 API 来报告某些功能。在大多数情况下,所需的功能是按特定分组对记录进行计数,然后深入了解细节。

例如,我们有一个表 - tableA,其中包含大量与文档相关的信息。我们想要报告的一条信息是给定语言的项目数量。语言代码是针对每个项目存储的,并且基于我想返回 JSON 的获取请求。

要求: /languages/:code/count/:tablename

在这个最具体的 URL 中有两个变量 - 我们正在计数的代码和我们正在计数的表。

我知道在 routes.rb 我可以设置一个映射:

get '/languages/:code/count/:table', :controller=>'languages', :action=>'count'

我有一个控制器——languages_controller.rb,里面有一个 count 方法。这然后匹配到相应的视图文件 count.html.erb

在我阅读的所有教程和我遵循的示例中,主要观点似乎是“语言”将是数据库中的一个表,因此可以在“魔术”Rails 方法下使用。

我的问题是它不是表格,而是调用的结果应该是 tableA 中字段的有限子集。例如语言代码和计数(id)。

需要“手动”查找语言的描述,因为它存储为不在任何地方的数据库中的内部代码(历史决策/疯狂)。

问题:

  1. 我如何拥有一个仅是字段子集的模型,以及一些手动填充的模型 - 语言代码、isocode、描述、计数
  2. 我是否认为一旦我定义了模型,我可以使用 ActiveRecord 从数据库中获取数据,然后在控制器中添加额外的信息?
  3. 我可以根据 URL 中发送的参数更改模型中的表格吗?

本质上,我目前不知道该怎么做。我已经定义了路线、视图模板和控制器,并准备就绪。数据库组件——从预先存在的表中获取一些数据对我来说似乎很神秘。

非常感谢任何帮助,看来该框架目前正在妨碍我,我知道我不能成为唯一尝试这种事情的人,所以如果您有任何建议,请分享。

4

1 回答 1

1

这里根本不需要模型。这不是 ORM 的用途。您应该做的只是对数据库运行原始 SQL,并迭代结果。考虑做这样的事情:https ://stackoverflow.com/a/14840547/229044

于 2013-08-20T20:03:06.157 回答