0

我正在学习 Rails,阅读 Michael Hartl 的网络书(顺便说一句很棒的来源),他说用户模型控制器的“创建”方法创建了一个用户,而“新”方法创建了一个用户。

好吧......在基本的用户模型和一般的 Rails 的上下文中,“创建”和“制作”之间的真正区别是什么?

提前感谢您的任何反馈!

4

2 回答 2

1

使用 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其保存到数据库中。

于 2013-07-21T16:30:42.473 回答
0

只需将其视为内存与硬盘驱动器。 User.new()将新的用户记录添加到内存(但不将其保存到数据库),同时User.create()将记录保存到数据库。

你可以这样做user = User.new(); user.save;,这相当于User.create()

于 2013-07-21T16:43:21.427 回答