rails 在从表单助手构建表单之前是否接触数据库?
Does rails touch the database before building a form from form helper?
完成 rails 教程,上面写着
When constructing a form using form_for(@user), Rails uses POST if @user.new_record? is true and PATCH if it is false.
因此,当它呈现 html 时,它会访问数据库吗?它究竟是什么时候这样做的?前面是什么?
不是,它没有命中数据库,你可以在控制台中自己检查,
old = User.last
new = User.new
只有old
访问数据库,而new
只是创建class的对象User
,让我们更进一步..
old.new_record?
#=> false
new.new_record?
#=> true
看,没有查询到数据库,类似地,当您将 @user
对象传递给表单时,它会检查 new_record?
但没有访问数据库。
那么,它是如何确定的呢?我的疯狂猜测,它检查 id
/primary_key
而不是 nil
Returns 如果此对象尚未保存,则为真 - 也就是说,数据库中尚不存在该对象的记录;否则,returns 错误。
完成 rails 教程,上面写着
When constructing a form using form_for(@user), Rails uses POST if @user.new_record? is true and PATCH if it is false.
因此,当它呈现 html 时,它会访问数据库吗?它究竟是什么时候这样做的?前面是什么?
不是,它没有命中数据库,你可以在控制台中自己检查,
old = User.last
new = User.new
只有old
访问数据库,而new
只是创建class的对象User
,让我们更进一步..
old.new_record?
#=> false
new.new_record?
#=> true
看,没有查询到数据库,类似地,当您将 @user
对象传递给表单时,它会检查 new_record?
但没有访问数据库。
那么,它是如何确定的呢?我的疯狂猜测,它检查 id
/primary_key
而不是 nil
Returns 如果此对象尚未保存,则为真 - 也就是说,数据库中尚不存在该对象的记录;否则,returns 错误。