我正在学习 Rails,阅读 Michael Hartl 的网络书(顺便说一句很棒的来源),他说用户模型控制器的“创建”方法创建了一个用户,而“新”方法创建了一个用户。
好吧......在基本的用户模型和一般的 Rails 的上下文中,“创建”和“制作”之间的真正区别是什么?
提前感谢您的任何反馈!
我正在学习 Rails,阅读 Michael Hartl 的网络书(顺便说一句很棒的来源),他说用户模型控制器的“创建”方法创建了一个用户,而“新”方法创建了一个用户。
好吧......在基本的用户模型和一般的 Rails 的上下文中,“创建”和“制作”之间的真正区别是什么?
提前感谢您的任何反馈!
使用 create 方法创建一个具有给定参数的用户并将其直接保存到数据库中,而使用 new 在内存中创建一个可以修改但必须通过调用 @user.save 手动将其保存到数据库中的新用户。
示例在 rails 控制台中尝试此操作
User.create(name: "User 1", email: "example@example.com")
现在键入User.all
,您将找到您在数据库中创建的用户。
现在试试
a = User.new(name: User 2", email: "example2@example.com")
现在输入User.all
不会显示这个新用户。您必须将a.save
其保存到数据库中。
只需将其视为内存与硬盘驱动器。 User.new()
将新的用户记录添加到内存(但不将其保存到数据库),同时User.create()
将记录保存到数据库。
你可以这样做user = User.new(); user.save;
,这相当于User.create()