昨天我們已經有成功建立文章了,
那東西去哪裡了呢?
我們可以進後台來找看看!
使用 rails console
來查看,
Rails「控制台」
是一個 Rails 的命令列工具,可讓您在 Rails 應用程式下方中與資料庫互動並執行 Ruby 程式碼。
它提供了一個有吸引力的 Ruby 環境,讓您能夠在運行中的 Rails 應用程式中執行程式碼,調試和測試功能,以及與資料庫互動。
直接在終端機裡面輸入指令
$ rails console
但工程師總是比較懶,所以總是有縮寫
$ rails c
這樣我們就可以進入控制台的環境
然後我們要找文章的話,就必須用文章的"類別"去找
就可以使用 Ruby 的搜尋方法
#我們要搜尋全部的文章
> Article.all
Article Load (0.4ms) SELECT "articles".* FROM "articles"
#要搜尋第一篇文章
> Article.first
Article Load (0.7ms) SELECT "articles".* FROM "articles" ORDER BY "articles"."id" ASC LIMIT ? [["LIMIT", 1]]
#還可以用 id 來查詢 find
> Article.find(1)
Article Load (0.5ms) SELECT "articles".* FROM "articles" WHERE "articles"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
#也可以用關鍵字的值來搜尋 find_by , where
> Article.find_by(title: "AAAA")
Article Load (0.6ms) SELECT "articles".* FROM "articles" WHERE "articles"."title" = ? LIMIT ? [["title", "AAAA"], ["LIMIT", 1]]
> Article.where(title: "AAAA")
Article Load (0.6ms) SELECT "articles".* FROM "articles" WHERE "articles"."title" = ? [["title", "AAAA"]]
不曉得大家知不知道,每次搜尋完下面執行的指令是什麼?
還記得這些資料都是去那裡挖的嗎?
沒錯,這些就是我們結構化資料庫 SQL
的語法,
那有沒有想過為什麼這些指令可以直接轉換成SQL的語法呢?
是一種Smashing技術,它允許將物件模型和關聯式資料庫之間的資料映射,簡單說就是將物件導向Smashing中的物件模型與關聯式資料庫中的表模型進行映射,從而方便在程式碼中操作資料庫。
傳統的關係型資料庫以表格的形式儲存數據,而物件導向程式設計中則使用物件來表示資料和行為。
ORM 提供了一種機制,使得開發人員可以在程式碼操作中使用物件導向的方式來資料庫,而不必直接操作(SQL)底層的資料庫查詢語言。
雖然這個神奇的魔法可以幫助你可以快速且直覺地搜尋,
但畢竟有些時候 ORM 產生出來的 SQL 效率不是最佳解,而你卻不一定有經驗能夠意識到什麼時候需要擔心或處理這個問題。
這個搜尋效率的問題就要再另外研究 SQL 的指令跟語法。
所以 ORM 雖然替我們節省了工作的時間,不過對資深的程式設計師來說,學習 SQL 的時間還是省不掉的!