我正在尝试从PHP过渡到Rails,并想知道最佳做法是什么。我拥有MySQL所需的所有数据,并希望使用ActiveRecords提供的各种细节进行简单查询和显示。我熟悉MVC范例,并且我不想依赖我对PHP的了解,但是,例如,我将如何能够完成我曾经做过的各种事情:
$ query = mysql_query(“select * from table where name ='blah');
如果我已经拥有该数据(如果我没有预先存在的数据,我可以看到生成脚手架)。我是否创建了一个脚手架然后将数据导入其中?或者我在Ruby中编写原始MySQL查询?
谢谢!
答案 0 :(得分:1)
首先,请记住Rails是一个Web开发框架,而不是像PHP这样的脚本语言。 Ruby是脚本语言。 PHP也有框架,但只是想确保你意识到这两者之间的区别。
Rails中的大多数基本和中等复杂性查询都是通过ActiveRecord方法和帮助程序处理的。你会发现你将编写更少的实际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提供了很多。
答案 1 :(得分:0)
如果您正在使用现有数据库,那么您将很难迫使Rails很好地使用它。 Rails power(有些人可能称之为弱点)是它更倾向于约定优于配置。换句话说,它确实希望您以某种方式构建数据库列。偏离惯例,你首先失去了使用Rails的所有原因。
当您启动新的rails项目并使用迁移时,rails确保结构符合预期。
如果要将旧项目移动到rails,那么我强烈建议编写一个函数将该数据导入到rails创建的数据库中。从长远来看,这将为您节省很多心痛,并且可以让您充分利用Rails的优势。