Ruby on rails rails在从form helper构建表单之前是否接触数据库?
学习rails教程,它说 在为(@user)使用form_构建表单时,Rails使用POST if@user.new_记录?为true,如果为false,则进行修补Ruby on rails rails在从form helper构建表单之前是否接触数据库?,ruby-on-rails,railstutorial.org,Ruby On Rails,Railstutorial.org,学习rails教程,它说 在为(@user)使用form_构建表单时,Rails使用POST if@user.new_记录?为true,如果为false,则进行修补 那么,当它呈现html时,它会撞击数据库吗?它到底是什么时候撞击数据库的?之前会发生什么?不,它不会命中数据库,您可以在控制台中自行检查 old = User.last new = User.new 只有old命中数据库,而new只创建类User的对象,让我们更进一步 old.new_record? #=> false ne
那么,当它呈现html时,它会撞击数据库吗?它到底是什么时候撞击数据库的?之前会发生什么?不,它不会命中数据库,您可以在控制台中自行检查
old = User.last
new = User.new
只有old
命中数据库,而new
只创建类User
的对象,让我们更进一步
old.new_record?
#=> false
new.new_record?
#=> true
请参见,没有查询命中数据库,类似地,当您将@user
对象传递到表单时,它会检查新记录?
,但不会命中数据库
那么,它如何确定这一点呢?我的猜测是,如果这个对象还没有保存,它会检查
id
/主键
而不是nil
返回true,也就是说,数据库中还没有该对象的记录;否则,返回false
考虑到AR方法检查记录是否存在的事实,我相信它会击中DB。@SergioTulentsev想对我的猜测发表评论吗?:)那么,你从中得出了什么结论?@Md.Farhan Memon这与你的答案相同,但这是写在Ruby API上的解释。