在前文《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環境是可得多加小心,不要把數據弄壞了。