搜尋大對決 Find, Find_by, Where

更新於 2022/08/01閱讀時間約 1 分鐘

Find

輸入一個 id 參數後,尋找相對應的一筆資料。
@article = Article.find(params[:id])
在 SQL 的部分:
SQL
如果 find 找不到相對應的資料時,會跳出兇殘的錯誤訊息:

Find_by

輸入一個或多個參數後,找到相對應的一筆資料。
@article = Article.find(id: params[:id], title: params[:title])
在 SQL 的部分:
如果 find_by 找不到相對應的資料時,會跳出比較溫和的 undefined method 訊息,並回傳 nil:
在 find_by 後面加驚嘆號,find_by! 也會產生跟 find 一樣的錯誤訊息,但仍能帶入多個參數。

Where

輸入一個或多個參數後,找到相對應的多筆資料。
@article = Article.where(params[:id])
這個 where 就是 SQL 語法的 where,所以參數也能使用 SQL 語法。
此外,參數也可以是 String / Array / Hash 當搜尋條件。

find vs find_by

1. 條件數量不同,find 只能有一個,find_by 可以有很多個。
2. 錯誤訊息不同 ( 但是 find 可以加驚嘆號,就等同 find )

find 系列 vs where 系列

1. find 系列只會有一筆資料,where 會找出符合搜尋條件的所有資料
2. where 可以使用 SQL 語法當作搜尋條件
Reference
https://ithelp.ithome.com.tw/articles/10225325
    avatar-img
    1會員
    13內容數
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    Mike的沙龍 的其他內容
    避免使用者在資料寫入時,強行新增非官網的資料時,所進行的預設阻擋功能。 所以必須新增一個「白名單」,才能正常寫入: 寫了這段後,除了 permit 的資料,其他額外的資料都會被過濾掉,不會進來。
    MVC是一套網頁開發的架構流程,代表著從前端到後端的各自分工。 M: Model 多個 model 建立的 tables 們能夠透過 foreign_key 或是 belongs_to / has_one / has_many,將彼此的資料產生關聯。 V: View C: Controller
    直接來看範例吧
      一切的重點就是在利用文字排版與語言解構使程式碼more「readable」   範例如下列網址,有興趣深入了解可進去觀看
    1. p1 = Product.new(name:"衛生紙") 接著執行 p1.stores = s1 卻出現 undefined method "each"的錯誤訊息。(如下圖一) 解決方法: 強制給實體掛上store_id 接下來處理Product
    在第一次建立rails專案時,通常都會遇到不少問題,像我是使用windows系統,所以也經歷了一些麻煩。如果各位第一次建立rails專案就可以看到下圖綠色字體的成功字樣,那真的如天選之人般幸運阿~ 如果你跟我一樣注定要經歷windows系統的苦痛,就請繼續看下去吧QQ
    避免使用者在資料寫入時,強行新增非官網的資料時,所進行的預設阻擋功能。 所以必須新增一個「白名單」,才能正常寫入: 寫了這段後,除了 permit 的資料,其他額外的資料都會被過濾掉,不會進來。
    MVC是一套網頁開發的架構流程,代表著從前端到後端的各自分工。 M: Model 多個 model 建立的 tables 們能夠透過 foreign_key 或是 belongs_to / has_one / has_many,將彼此的資料產生關聯。 V: View C: Controller
    直接來看範例吧
      一切的重點就是在利用文字排版與語言解構使程式碼more「readable」   範例如下列網址,有興趣深入了解可進去觀看
    1. p1 = Product.new(name:"衛生紙") 接著執行 p1.stores = s1 卻出現 undefined method "each"的錯誤訊息。(如下圖一) 解決方法: 強制給實體掛上store_id 接下來處理Product
    在第一次建立rails專案時,通常都會遇到不少問題,像我是使用windows系統,所以也經歷了一些麻煩。如果各位第一次建立rails專案就可以看到下圖綠色字體的成功字樣,那真的如天選之人般幸運阿~ 如果你跟我一樣注定要經歷windows系統的苦痛,就請繼續看下去吧QQ
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    給定一個輸入非負整樹陣列nums,請找出k值,使得陣列中恰好有k個元素大於等於 k。如果無解,回傳-1。尋找k值的方法包括排序法和二分搜尋法,時間複雜度都為O(n log n),空間複雜度為O(1)。關鍵知識點是當解空間具有遞增或遞減的性質時,可以用二分搜尋法加快搜尋效率。
    Thumbnail
    搜尋意圖是用戶進行搜索時的目的,分為資訊性、商業、導航和交易意圖。瞭解搜尋意圖對於優化網站和創建有價值的內容非常重要,可以通過關鍵字研究、內容優化和了解目標受眾的需求來實現。
    搜尋引擎優化(SEO)與物聯網(IoT)的前景在當今數位時代中日益重要。隨著網絡的普及和物聯網技術的發展,企業和個人都在尋求有效的方式來提高在線可見性和品牌曝光度。在這個動態的市場環境中,八拓科技有限公司等專業的SEO公司發揮了關鍵作用。 SEO是什麼?SEO是指通過優化網站內容和結構,以使其在搜
    隨著人工智慧技術的不斷發展和應用,搜尋引擎優化(SEO)在網路行銷領域中的地位和作用日益凸顯,展示出了嶄新的前景和發展機遇。讓我們一同探討在人工智慧時代,SEO將如何塑造網路行銷的未來。 首先,人工智慧技術的應用將使SEO更加智能化和精準化。通過機器學習和大數據分析,搜尋引擎可以更好地理解用戶的搜
    Thumbnail
    想要使用AI來快速了解一支股票! 卻受限於在2021年9月就停止更新資料庫的免費版ChatGPT? 本集Gary分析師要介紹ChatGPT和Google的合體! 最強第二大腦Perplexity AI! 一起來看看吧🧙
    Thumbnail
    系統名稱竟然是「Line」(跟我一直想移除但始終移除不了的軟體同名,裡面九成九是電訊垃圾,剩下百分之一的資訊則是通知我:請處理影響世界的垃圾─以搜捕電訊的方式執行)。
    Thumbnail
    下面簡單介紹ㄧ下,我目前怎麼使用DevonAgents,以及如何與Devonthink搭配呢? DevonAgent 主要特色: 可以準確搜尋,類似google的一些搜尋語法。 可以搜尋Devonthink資料庫 可以快速貯存搜尋條件(包含所搜尋的keywords以及目標資料庫) 延伸閱讀:
    Thumbnail
    整路在林間穿梭爬升,此時直升機也在附近來回搜索,茂密的植披我們並無法看到天空,但螺旋槳的聲響可以聽得出來幾乎在我們隊伍上方,無線電傳來空勤直升機呼叫指揮所的訊息,這是我個人第一次在頻道中直接聽到空勤與地面的直接通話;不過呼叫了兩次地面都沒有回應,也沒聽見其他守聽單位的傳遞中繼。
    Thumbnail
    下面幾家是這幾年我們帶孩子去各地遊玩,都會一再回訪的店家
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    給定一個輸入非負整樹陣列nums,請找出k值,使得陣列中恰好有k個元素大於等於 k。如果無解,回傳-1。尋找k值的方法包括排序法和二分搜尋法,時間複雜度都為O(n log n),空間複雜度為O(1)。關鍵知識點是當解空間具有遞增或遞減的性質時,可以用二分搜尋法加快搜尋效率。
    Thumbnail
    搜尋意圖是用戶進行搜索時的目的,分為資訊性、商業、導航和交易意圖。瞭解搜尋意圖對於優化網站和創建有價值的內容非常重要,可以通過關鍵字研究、內容優化和了解目標受眾的需求來實現。
    搜尋引擎優化(SEO)與物聯網(IoT)的前景在當今數位時代中日益重要。隨著網絡的普及和物聯網技術的發展,企業和個人都在尋求有效的方式來提高在線可見性和品牌曝光度。在這個動態的市場環境中,八拓科技有限公司等專業的SEO公司發揮了關鍵作用。 SEO是什麼?SEO是指通過優化網站內容和結構,以使其在搜
    隨著人工智慧技術的不斷發展和應用,搜尋引擎優化(SEO)在網路行銷領域中的地位和作用日益凸顯,展示出了嶄新的前景和發展機遇。讓我們一同探討在人工智慧時代,SEO將如何塑造網路行銷的未來。 首先,人工智慧技術的應用將使SEO更加智能化和精準化。通過機器學習和大數據分析,搜尋引擎可以更好地理解用戶的搜
    Thumbnail
    想要使用AI來快速了解一支股票! 卻受限於在2021年9月就停止更新資料庫的免費版ChatGPT? 本集Gary分析師要介紹ChatGPT和Google的合體! 最強第二大腦Perplexity AI! 一起來看看吧🧙
    Thumbnail
    系統名稱竟然是「Line」(跟我一直想移除但始終移除不了的軟體同名,裡面九成九是電訊垃圾,剩下百分之一的資訊則是通知我:請處理影響世界的垃圾─以搜捕電訊的方式執行)。
    Thumbnail
    下面簡單介紹ㄧ下,我目前怎麼使用DevonAgents,以及如何與Devonthink搭配呢? DevonAgent 主要特色: 可以準確搜尋,類似google的一些搜尋語法。 可以搜尋Devonthink資料庫 可以快速貯存搜尋條件(包含所搜尋的keywords以及目標資料庫) 延伸閱讀:
    Thumbnail
    整路在林間穿梭爬升,此時直升機也在附近來回搜索,茂密的植披我們並無法看到天空,但螺旋槳的聲響可以聽得出來幾乎在我們隊伍上方,無線電傳來空勤直升機呼叫指揮所的訊息,這是我個人第一次在頻道中直接聽到空勤與地面的直接通話;不過呼叫了兩次地面都沒有回應,也沒聽見其他守聽單位的傳遞中繼。
    Thumbnail
    下面幾家是這幾年我們帶孩子去各地遊玩,都會一再回訪的店家