Ruby on Rails,使用Rails Console进行ActiveRecord调试

作者: 边晓宇
发布时间:2015-07-13 11:21:05

在前文《Ruby on Rails,创建模型,附赠模型与表名不一致时的解决方法》中我们通过rails generate model Subject 方法创建了Subject类。继承自ActiveRecord的Subject自然就拥有自动的增删改查能力,我们接下来要基于这个模型进行一些实践。不过在这之前有必要预先熟悉一个Rails提供给我们的调试工具“rails console”。在他的帮助下我们能抛开Controller和View,直接拿着Model进行调试。

打开Rails的命令行,到应用的根目录,执行rails console启动。注意,要到Rails应用的根目录,我的是E:\greensoft\RailsInstaller\Sites\simple_cms>

E:\greensoft\RailsInstaller\Sites\simple_cms>rails console  Loading development environment (Rails 3.2.1)  irb(main):001:0>

回显的第一行提示了启动加载了Rails开发环境,之后显示的与irb没什么两样。接下来的操作其实就是普通的irb操作,只不过现在的这个irb,是能够访问当前rails应用的。先来几个普通的irb操作

E:\greensoft\RailsInstaller\Sites\simple_cms>rails console  Loading development environment (Rails 3.2.1)  irb(main):001:0> 1+2  => 3  irb(main):002:0> "abbuggy".upcase  => "ABBUGGY"  irb(main):003:0>

接下来,操作一下我们自定义的模型Subject。创建一个Subject的实例subject1,再把它保存到数据库中。

irb(main):001:0> subject1=Subject.new  => #<Subject id: nil, created_at: nil, updated_at: nil>  irb(main):002:0> subject1.save    [1m[36m (0.0ms)[0m  [1mBEGIN[0m    [1m[35mSQL (16.0ms)[0m  INSERT INTO `subjects` (`created_at`, `updated_at`) VALUES ('2012-09-03 16:31:39', '2012-09  -03 16:31:39')    [1m[36m (27.0ms)[0m  [1mCOMMIT[0m  => true  irb(main):003:0>

使用的new,save操作都是继承自ActiveRecord的,后面会详细了解这里只要知道是在创建和保存对象就ok。

你看,通过rails console短短几行代码就可以进行模型与数据库的交互操作,如果你需要向数据库中插入一批实验数据,这回很有帮助。

注意刚才进入rails console时候的回显Loading development environment (Rails 3.2.1),系统提示我们进入的是开发环境,这是缺省值。如果你希望进入其他的环境只需要在rails console后面跟上其他环境的名字。如rails consle production,不过当尝试进入已经上线运行的production环境是可得多加小心,不要把数据弄坏了。

来源:http://www.cnblogs.com/abbuggy/archive/2012/09/04/2669812.ht

推荐: