我是Ruby和Rails的新手。我和Sinatra玩过一段时间,但我认为Rails是我项目的一个更完整的框架。但是,我遇到了麻烦。
我正在使用相当庞大的现有且使用频繁的mySQL数据库,我正在尝试为此构建一个API来报告某些功能。在大多数情况下,所需的功能是某些分组的记录计数,然后深入细节。
例如,我们有一个table-tableA,其中包含许多与文档相关的信息。我们要报告的一条信息是给定语言中的项目数。语言代码针对每个项目存储,并且基于get请求,我想返回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)。
语言描述需要“手动”查找,因为它存储为内部代码,不在任何地方的数据库中(历史决定/疯狂)。
问题:
基本上,我现在不知道如何处理这个问题。我已经定义了路由,视图模板到位,控制器在那里准备好了。数据库组件 - 从预先存在的表中获取一些数据对我来说似乎很神秘。
任何帮助都非常感谢,似乎该框架目前正在阻碍我,我知道我不可能是唯一一个尝试此类事情的人,所以如果您有任何建议请分享。
答案 0 :(得分:1)
根本不需要这里的模型。这不是ORM的用途。你应该做的只是对数据库运行原始SQL,并迭代结果。考虑做这样的事情:https://stackoverflow.com/a/14840547/229044