Rails:ActiveRecord中创建方法和新方法之间的区别?

时间:2010-12-02 08:48:45

标签: ruby-on-rails-3

我按Rails 3.0 tutoriallynda.com

这两行之间有什么区别?

first_page = Page.new(:name => "First page")

first_page = Page.create(:name => "First page")

顺便说一句,这是很棒的教程;我推荐给像我这样的其他新手。

1 个答案:

答案 0 :(得分:64)

基本上new方法创建了一个对象实例,如果可能,create方法还会尝试将其保存到数据库中。

检查ActiveRecod :: Base文档:

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

新方法 可以将新对象实例化为空(传递无构造参数)或使用属性预先设置但尚未保存(传递具有与关联表列名匹配的键名称的哈希)。