我正试图从PHP过渡到Rails,并想知道什么是最佳实践。我在MySQL中有我需要的所有数据,并且希望使用ActiveRecords提供的各种细节进行简单的查询和显示。我熟悉MVC模式,并试图不依赖于我对PHP的知识,而是如何,例如,我能做我以前做的事情:
$query=mysql_query(“Select*from table where name='blah');
如果我已经有了这些数据(我可以看到如果我没有预先存在的数据就可以生成一个脚手架)。我是否创建一个脚手架,然后将数据导入其中?还是用Ruby编写原始的MySQL查询?
谢谢!

最佳答案

首先,请记住Rails是一个web开发框架,而不是像PHP这样的脚本语言。Ruby是脚本语言。PHP也有框架,但只是想确保您认识到两者之间的区别。
Rails中的大多数基本和中等复杂度查询都是通过ActureCordD方法和帮助器来处理的。您会发现您编写的实际SQL要少得多,因为它通常被抽象到框架中。
例如,假设您的模型名是City,那么您在Rails中的查询等价于:

City.find_all_by_name('blah')

这是怎么工作的?在Rails中创建模型时,通常会将ActiveRecord::Base子类化。在这个类中内置了大量的功能,比如,检查数据表,为表中的每个字段和字段组合构建动态查找器。
因为您已经拥有了所有的数据,所以您将重写Rails的一些常规功能,以使所有的工作正常。例如,按照约定,Rails假设有一个名为“id”的主键字段。此外,Rails假设该表被命名为模型类定义的复数形式。所有这些事情都是按惯例违约的,但可以被推翻。如果您从头开始并遵循约定进行构建,那么所有这些都会理所当然地发生。
基于您的问题,我认为您需要花一些时间阅读一些基本的Rails阅读材料和一些关于ActiveRecord和Rails模型的特定信息,以便您能够加快Rails和标准PHP应用程序之间的这些主要区别。如果你从一开始就不明白这一点,那么你将要构建很多PHP风格的Rails,你将无法充分利用Rails和Ruby所提供的功能。最后,你会说“我为什么这么做,都一样。”
相反,如果您尝试从Rails的工作方式开始,您会发现Ruby和Rails提供了很多功能。

关于mysql - Ruby on Rails3和MySQL查询最佳做法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6500829/

10-11 22:57
查看更多