Rails是否被弃用?

B S*_*ven 5 activerecord ruby-on-rails

Rails find方法是否已被弃用?

在过去,find(1)是通过id找到的首选方式.

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

Jef*_*D23 5

这两种方法都没有被弃用(据我所知)。find和之间的区别find_by()是当记录不存在时它们返回的内容。如果 ID 为 23 的记录不存在,您将得到以下结果:

Model.find(23)
=> ActiveRecord::RecordNotFound: Couldn't find Model with 'id'=23
Run Code Online (Sandbox Code Playgroud)

或者

Model.find_by(id: 23)
=> nil
Run Code Online (Sandbox Code Playgroud)

find_by如果您在可能不存在的记录的情况下进行查询,则使用更宽容,因为您得到的nil是值而不是异常。