Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 何时使用新建和创建rails控制器_Ruby On Rails - Fatal编程技术网

Ruby on rails 何时使用新建和创建rails控制器

Ruby on rails 何时使用新建和创建rails控制器,ruby-on-rails,Ruby On Rails,这是一个非常简单的问题,但我不知道何时应该在控制器中使用.new和.create。我想我真正想问的是,新的有什么用?新的有什么用?创造?谢谢 来自文档: 创建(attributes=nil){|对象|……} 如果验证通过,则创建一个对象(或多个对象)并将其保存到数据库中。无论对象是否成功保存到数据库,都会返回结果对象 新的(attributes=nil){如果给定块| | self?|…} 新对象可以实例化为空(不传递构造参数)或使用属性预设但尚未保存(传递具有与相关表列名匹配的键名的哈希)。在

这是一个非常简单的问题,但我不知道何时应该在控制器中使用.new和.create。我想我真正想问的是,新的有什么用?新的有什么用?创造?谢谢

来自文档:

创建(attributes=nil){|对象|……}

如果验证通过,则创建一个对象(或多个对象)并将其保存到数据库中。无论对象是否成功保存到数据库,都会返回结果对象

新的(attributes=nil){如果给定块| | self?|…}

新对象可以实例化为空(不传递构造参数)或使用属性预设但尚未保存(传递具有与相关表列名匹配的键名的哈希)。在这两种情况下,有效的属性键都是由关联表的列名决定的,因此不能有不属于表列的属性

因此,
create
实例化新对象,对其进行验证,然后将其保存到数据库中。和
new
仅创建本地对象,而不尝试验证或将其保存到数据库


来自

谢谢,但我不知道什么时候我会想用新的?你能举个例子吗?如果你不想立即保存,你可以做
something=something.new
然后
如果something.save…
或者如果你以后才有一些属性,你可以创建它,然后设置更多属性,例如
something.property=variable
然后
保存。这取决于你在做什么<代码>新建
可能会派上用场,但
创建
可能更常用。完美的解释。谢谢