2011-06-28 28 views
1

我试图从PHP过渡到Rails,并想知道最佳实践是什么。我拥有我在MySQL中需要的所有数据,并希望进行简单的查询,并使用ActiveRecords提供的各种细节进行显示。我熟悉MVC范例,并且不想依赖于我对PHP的了解,但是,例如,如何能够完成我以前使用的各种功能:Ruby on Rails3和MySQL查询最佳实践

$ query = mysql_query (“Select * from table where name ='blah');

如果我已经有了这些数据(如果我没有预先存在的数据,我可以看到生成一个脚手架),然后创建一个脚手架,然后导入我的数据到了吗?还是我写的原始的MySQL查询在Ruby中?

谢谢!

回答

1

首先,请记住,Rails是一个web开发框架,而不是像PHP这样的脚本语言。 Ruby是脚本语言。 PHP也有框架,但只是想确保你意识到这个和另一个之间的区别。

Rails中的大多数基本和中等复杂性查询都是通过ActiveRecord方法和帮助程序处理的。你会发现你会写更少的实际SQL,因为这通常被抽象到框架中。

例如,假设你的模型的名称是城市,你的查询在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提供了很多。

+0

所以会是最好的运行脚手架,然后修改/进口数据是否适合Rails模型? – Rio

+0

如果您有时间并且愿意付出努力,那么是的,我认为您最好通过以这种方式适应“Rails之路”来实现。必须,但是如下面的@sosborn所提到的那样,它会让事情变得更容易,并让您充分利用Rails提供的好处。 – Yardboy

0

如果您正在使用现有的数据库工作,那么你将有一个HAR d时间迫使Rails和它一起玩。 Rails的力量(有人可能认为它是一个弱点)是它支持惯例而不是配置。换句话说,它真的希望你能以某种方式构建数据库列。离开惯例,你首先失去了使用Rails的所有原因。

当您启动一个新的rails项目并使用migrations rails时,确保该结构符合预期。

如果您要将旧项目移至rails,那么我强烈建议编写一个函数将该数据导入到rails创建的数据库中。从长远来看,这将为您节省很多心痛,并且可以让您充分利用Rails的优势。