Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RubyonRails3和MySQL查询最佳实践_Mysql_Ruby On Rails_Ruby - Fatal编程技术网

RubyonRails3和MySQL查询最佳实践

RubyonRails3和MySQL查询最佳实践,mysql,ruby-on-rails,ruby,Mysql,Ruby On Rails,Ruby,我正在尝试从PHP过渡到Rails,我想知道最佳实践是什么。我拥有MySQL中所需的所有数据,并希望使用ActiveRecords提供的各种细节进行简单的查询和显示。我熟悉MVC范式,我尽量不依赖于我对PHP的了解,但是,例如,我如何才能做我过去经常做的事情: $query=mysql_query(“从表中选择*,其中name='blah') 如果我已经有了这些数据(如果我没有预先存在的数据,我可以看到生成一个脚手架)。我是创建一个脚手架,然后将数据导入其中?还是用Ruby编写原始MySQL查询

我正在尝试从PHP过渡到Rails,我想知道最佳实践是什么。我拥有MySQL中所需的所有数据,并希望使用ActiveRecords提供的各种细节进行简单的查询和显示。我熟悉MVC范式,我尽量不依赖于我对PHP的了解,但是,例如,我如何才能做我过去经常做的事情:

$query=mysql_query(“从表中选择*,其中name='blah')

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


谢谢!

如果您使用的是现有的数据库,那么您将很难强迫Rails很好地使用它。Rails强大(有些人可能称之为弱点)这是因为它更倾向于约定而不是配置。换句话说,它确实希望您以某种方式构造数据库列。偏离约定,您首先就失去了使用Rails的所有理由

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


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

如果您使用的是现有数据库,那么您将很难使用它让Rails更好地发挥作用。Rails的威力(有些人可能会称之为弱点)在于它更倾向于约定而不是配置。换句话说,它确实希望您的数据库列以某种方式进行结构。偏离约定,您首先就失去了使用Rails的所有理由

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


如果您要将一个旧项目迁移到rails,那么我强烈建议您编写一个函数,将该数据导入rails创建的数据库。从长远来看,这将为您节省大量心痛,并允许您充分利用rails的优势。

首先,请记住rails是一个web开发框架,而不是像PHP.R这样的脚本语言uby是脚本语言。PHP也有框架,但只是想确保您认识到两者之间的区别

Rails中大多数基本和中等复杂度的查询都是通过ActiveRecord方法和助手来处理的,您会发现编写的实际SQL要少得多,因为它通常被抽象到框架中

例如,假设您的模型名为City,那么Rails中查询的等效项为:

City.find_all_by_name('blah')
这是如何工作的?当你在Rails中创建一个模型时,你通常是ActiveRecord::Base的子类。该类内置了大量的功能,其中一个功能是检查你的数据表,并为表中的每个字段和字段组合构建动态查找器

由于您已经拥有了所有的数据,因此您将覆盖Rails的一些常规功能,以使一切正常工作“。此外,Rails假定表的名称为模型类定义的复数形式。所有这些都是约定的默认值,但可以被覆盖。如果你是从零开始构建并遵循惯例,所有这些都会自然而然地发生

基于您的问题,我认为您需要花一些时间阅读一些基本的Rails阅读材料,以及一些有关ActiveRecord和Rails模型的特定信息,以便您能够了解Rails和标准PHP应用程序之间的这些主要差异。如果你不能从一开始就明白这一点,那么你将要构建很多PHP风格的Rails,你将无法充分利用Rails和Ruby所提供的功能。最后,你会说:“我做这些都是为了什么,都一样。”


相反,如果您尝试从Rails的方式开始,您会发现Ruby和Rails提供了很多功能。

首先,请记住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和standard之间的这些主要差异