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

mko*_*mko 44 ruby-on-rails-3

我跟随的Rails 3.0教程lynda.com.

这两条线之间有什么区别?

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

first_page = Page.create(:name => "First page")
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*lde 67

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

检查ActiveRecod :: Base文档:

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

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