Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Ruby on rails Rails被弃用了吗?_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails Rails被弃用了吗?

Ruby on rails Rails被弃用了吗?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,Railsfind方法是否已弃用 在过去,find(1)是按id查找的首选方式 使用find_by(id:1)而不是find(1)是否更好?从Rails 4.2.1开始,情况并非如此。是它的API文档(不是官方的,但相当不错)。我想您看到的是,在Rails 3.0.0中,它被弃用了 我从未使用过方法find\u by()。我认为更好/更新的方法是where()方法,如下所示: User.where(name: "Bob", email: "bob@example.com") 这两种方法都不推荐

Rails
find
方法是否已弃用

在过去,
find(1)
是按id查找的首选方式


使用
find_by(id:1)
而不是
find(1)
是否更好?

从Rails 4.2.1开始,情况并非如此。是它的API文档(不是官方的,但相当不错)。我想您看到的是,在Rails 3.0.0中,它被弃用了

我从未使用过方法
find\u by()
。我认为更好/更新的方法是
where()
方法,如下所示:

User.where(name: "Bob", email: "bob@example.com")

这两种方法都不推荐(据我所知)。
find
find_by()
之间的区别在于当记录不存在时它们返回的内容。如果ID为23的记录不存在,则会得到以下结果:

Model.find(23)
=> ActiveRecord::RecordNotFound: Couldn't find Model with 'id'=23


如果您在查询可能不存在记录的地方使用
find_by
,因为您得到的是
nil
值而不是异常,那么使用
find_by
会更为宽容

您可能指的是类似find(:first)find(:all)的弃用方法,它们被弃用以支持first和all方法

对这种方法的支持已从rails 3.2中删除


您使用的方法()没有被弃用。

find
是ActiveRecord中提到的第一个方法,因此我认为可以肯定地说,它仍然是一条路。您在RubyMine中看到弃用的方法吗?如果是,它就是已知和报告的bug:
其中
不是更好/更新的,它只是做了一些不同的事情。不推荐使用的find you link基本上仍然是相同的方法。它刚从
Base
移动到
FinderMethods
find_by(x)
可以被认为是与
where(x)等价。首先,
。where()返回一个对象数组,而.find_by()返回一个对象实例。FWIW,我认为与
find_by_xxx
方法混淆。我认为这些在Rails 4中被弃用了。
Model.find_by(id: 23)
=> nil