何时使用new和create rails controller

时间:2014-12-02 16:31:40

标签: ruby-on-rails

这是一个非常简单的问题,但我很困惑何时应该在控制器中使用.new和.create。我想我真正想问的是.new的用途是什么以及.create的用途是什么?谢谢。

1 个答案:

答案 0 :(得分:0)

来自ActiveRecord::Base文档:

create(attributes = nil){| object | ...}

  

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

new(attributes = nil){| self if block_given?| ...}

  

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

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

来自https://stackoverflow.com/a/2472416/634120