Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
Sql where vs.find()。关于它们的使用建议是什么?_Sql_Ruby On Rails_Ruby - Fatal编程技术网

Sql where vs.find()。关于它们的使用建议是什么?

Sql where vs.find()。关于它们的使用建议是什么?,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,在什么情况下应该使用Model.where或Model.find()?每个地方都有关于差异的信息,但是对于它们的使用建议是什么呢?我们使用find任何时候只有一个结果必须可见,页面才有用。例如,/item/:id。我们拯救NotFound异常,然后显示一个404错误页面(如果捕捉到) 当可能存在缺失项时,我们使用where,如果有意义,则使用first 我们使用find任何时候只有一个结果必须可见,页面才有用。例如,/item/:id。我们拯救NotFound异常,然后显示一个404错误页面(如

在什么情况下应该使用Model.where或Model.find()?每个地方都有关于差异的信息,但是对于它们的使用建议是什么呢?

我们使用
find
任何时候只有一个结果必须可见,页面才有用。例如,
/item/:id
。我们拯救NotFound异常,然后显示一个404错误页面(如果捕捉到)


当可能存在缺失项时,我们使用
where
,如果有意义,则使用
first

我们使用
find
任何时候只有一个结果必须可见,页面才有用。例如,
/item/:id
。我们拯救NotFound异常,然后显示一个404错误页面(如果捕捉到)


当可能存在缺失项时,我们使用
where
,如果有意义,则使用
first

其中
实际上不获取任何内容-它返回一个范围为您刚才指定的条件的
ActiveRecord::Relation
。这意味着您可以将其与内容链接起来:更多调用
where
join
limit

另一个上的
find
可以执行查询并返回数组或对象(取决于您是执行
find:all
还是
find:first
),因此您无法将内容链接到它的后面

您可以传递条件、联接等来查找,但这样做将被弃用。您实际上不需要调用
find
,因为您可以在需要时让
ActiveRecord::Relation
将其自身变成一个数组,也可以先调用关系上的
all
/
last
,从而实现同样的效果调用
find
就可以了


关于
find
唯一更方便的事情是当您有一个id(或id数组)时并希望加载相应的模型对象。

其中
实际上不获取任何内容-它返回一个
ActiveRecord::Relation
,范围为您刚才指定的条件。这意味着您可以将其与内容链接:更多调用
其中
连接
限制

另一个上的
find
可以执行查询并返回数组或对象(取决于您是执行
find:all
还是
find:first
),因此您无法将内容链接到它的后面

您可以传递条件、联接等来查找,但这样做将被弃用。您实际上不需要调用
find
,因为您可以在需要时让
ActiveRecord::Relation
将其自身变成一个数组,也可以先调用关系上的
all
/
last
,从而实现同样的效果调用
find
就可以了

只有当您有一个id(或id数组)并希望加载相应的模型对象时,
find
才更方便