---
# System prepended metadata

title: Ruby(14/14) 五倍紅寶石(第八屆共筆)(2021/8/27)
tags: [Rails, JavaScript, Ruby]

---

# Ruby(14/14) 五倍紅寶石(第八屆共筆)(2021/8/27)
測試上傳github，記得切分支
## 五倍最後一天正課，行齁？ 不行也得行啦
### 前端框架
前後端分離用 Vue 很好做
但一站式會比較麻煩
Rails 變 Model，Vue 是 View
Stimulus.js 好處是很清楚 JS 檔要放哪裡

## JS 
### ...
[展開運算子](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Operators/Spread_syntax)
1. 用在參數，用來接收全部引數
2. 用在 console.log ，把陣列或物件整個展開印出來

### ||=
a ||= 1
=> a = a || 1
=> a 有值就給他 a 的值，否則就是 1
=> 也就是給他一個預設值 1

### Rails 推薦書：
[Agile Web Development with Rails 6](https://www.tenlong.com.tw/products/9781680506709) dhh寫的

- 使用者瀏覽資料存在 session、database 差異
  - 存在 database 可以做資料分析6
  - 存在 session 無法做資料分析

## 實作購物車、訂單、金流
### Braintree
[Braintree](https://www.braintreepayments.com/)
用來做串接金流，記得用 sandbox 註冊登入就好
developer doc:寫給工程師看的文件

Nonce:Number once，用一次的數字
3 做二階段驗證
5 是安全的
![](https://i.imgur.com/O4P5twn.png)
有專門的測試用卡號在官網 4111-1111-1111-1111
日期隨便寫，只要是沒過期都可

### routes
resources:路徑會生出id
resource:路徑不會生出id，適合購物車，每個人只會有一台購物車

### 測試
寫測試就是用來當規格、說明書，將來就這樣用

### debug
JS:有事沒事就來個 console.log 印看看結果
Ruby:render html: params 看 params 長怎樣
或是把變數丟到 view 看一下長怎樣

### 金鑰
- figaro套件
  把金鑰放進來變環境變數
	因為設定會放在 gitignore 所以 yml 檔案不會被推上去
  同理，有些東西如:bundle、yarn、某些 json 檔...之類的 rails 預設放在這個資料夾
  所以才不會推上去 GitHub，導致每次 pull 下來都會少東西，要 bundle install 跟 yarn install
	看到.sample可以照著做，然後把.sample刪掉
	用國外金流要注意幣別，推薦藍新或綠界金流

### code review
龍哥會問這誰寫的，為什麼這麼寫？
寫的時候要知道自己在寫甚麼

---

###### tags: `Ruby` `Rails` `JavaScript`