###### tags: `Ruby` [TOC] ## Github issue ![](https://i.imgur.com/0eO18At.png) 可以預定要做的事 ## CDN (Content Delivery Network) <link to , href= "....."> ## 確認套件 ![](https://i.imgur.com/hd0PVIr.png) ## 引入 node_module裡的bootstrap裡的 # 使用格線以及卡片 ![](https://i.imgur.com/zJjLiWC.png) 重複的寫在layout ![](https://i.imgur.com/M629u10.png) ![](https://i.imgur.com/GqXJ8hZ.png) ## 餐點軟刪除 ![](https://i.imgur.com/RPptdme.png) g 一個migration ![](https://i.imgur.com/FvFJsY6.png) ![](https://i.imgur.com/fBLZcII.png) ### scope(常用!!) ![](https://i.imgur.com/LR5kTzK.png) 在item.rb寫上這行 ![](https://i.imgur.com/m2DlYZb.png) 就可以在controller裡用available代替where......這段囉 ```default_scope { where(deleted_at: nil) }``` ![](https://i.imgur.com/h74pTVV.png) 換成這行其餘要改的地方都可以維持原樣不用改 ![](https://i.imgur.com/mw75AGK.png) 要解除它可以這樣 ### 修code ![](https://i.imgur.com/KkWHzLw.png) ![](https://i.imgur.com/Jknn3JZ.png) 為了用destory代替update...... 在item.rb自己定義destory! ## scope vs def scope出來的事類別方法 def 事實體方法 若要使用def必須 ``` def self.xxxxx``` 一般若是只需要寫一行就用scope若是要寫很多行用def效果其實相同 **在controller 裡若是看到很多where.xxxxxx 不太好 其實可以用scope 把他藏起來** ## flash 明顯化 套bootstrap的alert 把原本在navbar裡的flash[:notice刪調] ![](https://i.imgur.com/MsAc2Ao.png) ![](https://i.imgur.com/9EmrhLk.png) 新增檔案 _xxxx.html.erb 在shared裡 # 購物車 ![](https://i.imgur.com/KcICymF.png) 接著在終端機輸入 ```rails rspec:install``` 接著做一個rspec model ```rails g rspec modle Cart``` ![](https://i.imgur.com/o5RUQvr.png) 就回有這些檔案 ![](https://i.imgur.com/YB2tykR.png) 提醒你什麼沒做後面內容可以自訂 ### 開始寫測試 ![](https://i.imgur.com/S2ancvY.png) AAA原則 先假設功能錯了在慢慢改 ![](https://i.imgur.com/lAJ7xkf.png) 這樣寫每次使用add_item都會重置@items ![](https://i.imgur.com/FYW6wzd.png) ![](https://i.imgur.com/JLXuqzs.png) 可以只測試某一個