Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别
欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/7944401
在前文《Ruby on Rails,使用Rails Console进行ActiveRecord调试》中,我们能够在rails console中访问模型并进行对象创建和入库操作。
现在我们来看一看创建和入库操作的一些细节。在rails中,new/save操作和create操作都可以创建ActiveRecord对象并持久化到数据库。他们之间的区别还是比较容易猜测出来的。
没错,new操作负责创建对象并返回,在对对象属性赋值之后,调用save方法,对象被保存到数据库中。
irb(main):014:0> subject2=Subject.create(:name=>"terry",:position=>"manager") [1m[35m (0.0ms)[0m BEGIN [1m[36mSQL (19.0ms)[0m [1mINSERT INTO `subjects` (`created_at`, `name`, `position`, `updated_at`) VALUES ('2012-09-04 17:27:31', 'terry', 'manager', '2012-09-04 17:27:31')[0m [1m[35m (23.0ms)[0m COMMIT=> #<Subject id: 3, created_at: "2012-09-04 17:27:31", updated_at: "2012-09-04 17:27:31", name: "terry", position: "manager">看来一般还是使用new/save的方式多一些吧,不过create方式对于通过命令向数据库中插入若干记录的场景还是比较方便的。
欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/7944401