【发布时间】:2010-12-18 18:09:13
【问题描述】:
我正在学习数据库课程,讲师希望我们开发一个电子商务应用程序。她说我们可以使用我们喜欢的任何框架,现在学期已经过半了,她认为 Rails 做的太多了,希望我明确地编写 SQL 查询。
所以,我想做的是编写自己的函数并将它们添加到模型中,以基本上复制已经存在的功能(但使用我自己编写的 SQL)。
那么问题就变成了:
- 如何在模型中执行手动创建的查询?
- 如何将结果填充到一个空对象中,然后我可以返回并在视图中使用?
另外,我知道这是多么糟糕的做法,我现在只是不想在 PHP 中重新开始。
【问题讨论】:
-
我很抱歉,但现在几乎每个框架都有某种 ORM - 例如看 Doctrine。 ActiveRecord 甚至不能很好地隐藏 SQL - 您可以将 SQL 作为条件/组/连接选项的一部分编写。
-
ActiveRecord 甚至没有尝试隐藏 SQL。阅读 Rails 的创建者 David Heinemeier Hansson 在Agile Web Development with Rails book 的第 315 页上所说的话:“[Active Record] 建立在 SQL 既不脏也不坏,只是在琐碎情况下冗长的概念之上。重点是无需在那些琐碎的情况下处理冗长的问题(手动编写一个 10 属性的插入会使任何程序员感到疲倦),但保持硬查询的表现力——创建 SQL 类型是为了优雅地处理。”跨度>
标签: sql ruby-on-rails ruby model