Rails中“create”和“make”之间的区别是什么?

时间:2013-07-21 16:29:42

标签: ruby-on-rails

我正在学习Rails阅读迈克尔哈特尔的网页(顺便说一下,这是一个很棒的资源),他说"创建"用户模型控制器的方法创建用户和" new"方法让用户。

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

提前感谢您的任何反馈!

2 个答案:

答案 0 :(得分: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才能将其保存到数据库中。

答案 1 :(得分:0)

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

您可以执行user = User.new(); user.save;,这相当于User.create()