iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
自我挑戰組

Rails 手工打造自己的部落格 系列 第 15

Rails 手工打造自己的部落格 15 -Rails console

  • 分享至 

  • xImage
  •  

昨天我們已經有成功建立文章了,
那東西去哪裡了呢?
我們可以進後台來找看看!
使用 rails console 來查看,

Rails console

Rails「控制台」
是一個 Rails 的命令列工具,可讓您在 Rails 應用程式下方中與資料庫互動並執行 Ruby 程式碼。
它提供了一個有吸引力的 Ruby 環境,讓您能夠在運行中的 Rails 應用程式中執行程式碼,調試和測試功能,以及與資料庫互動。

啟動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的語法呢?

ORM 物件關係映射

Object-Relational Mapping

是一種Smashing技術,它允許將物件模型和關聯式資料庫之間的資料映射,簡單說就是將物件導向Smashing中的物件模型與關聯式資料庫中的表模型進行映射,從而方便在程式碼中操作資料庫。
傳統的關係型資料庫以表格的形式儲存數據,而物件導向程式設計中則使用物件來表示資料和行為。
ORM 提供了一種機制,使得開發人員可以在程式碼操作中使用物件導向的方式來資料庫,而不必直接操作(SQL)底層的資料庫查詢語言。

雖然這個神奇的魔法可以幫助你可以快速且直覺地搜尋,
但畢竟有些時候 ORM 產生出來的 SQL 效率不是最佳解,而你卻不一定有經驗能夠意識到什麼時候需要擔心或處理這個問題。
這個搜尋效率的問題就要再另外研究 SQL 的指令跟語法。
所以 ORM 雖然替我們節省了工作的時間,不過對資深的程式設計師來說,學習 SQL 的時間還是省不掉的!


上一篇
Rails 手工打造自己的部落格 14 - CRUD 05
下一篇
Rails 手工打造自己的部落格 16 - CRUD -R
系列文
Rails 手工打造自己的部落格 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言