---
# System prepended metadata

title: 沙盒模式 (rails c --snadbox)
tags: [Ruby]

---

###### tags: `Ruby`
# 沙盒模式 (rails c --snadbox)
![](https://i.imgur.com/nGQ1wm6.png)




![](https://i.imgur.com/XvRnqNz.png)save後自動生出id 以及時間

![](https://i.imgur.com/4yDj8zV.png)第二次save變成update

![](https://i.imgur.com/fgVUtrL.png)檢查是否更動可以用xxx.changed?

![](https://i.imgur.com/WZhkNgn.png)如果要更改可以這樣如果要多筆一起更改![](https://i.imgur.com/WthE2OP.png)

資料驗證這件事放在model這裡做 因為可以重複使用若是在controller裡做那每個controller都要再寫一次

model 以及資料庫都需要做驗證
![](https://i.imgur.com/VwXT3fa.png)加入驗證email、password必填

![](https://i.imgur.com/7v3UlJy.png)測試

# 實作
![](https://i.imgur.com/cdECuWT.png)寫進資料庫前必須再驗證一次只靠token不夠
![](https://i.imgur.com/xYd1Llp.png)可以透過開發工具新增欄位

![](https://i.imgur.com/6RKBfDc.png)強參數過濾

![](https://i.imgur.com/T8fMet3.png) password_confirm不再資料表欄位裡所以它不認得(虛擬欄位)

![](https://i.imgur.com/ZtNu5FW.png)解決方案

![](https://i.imgur.com/2qHG7lN.png)將強參數變回私有方法
![](https://i.imgur.com/ttCq4wD.png)整理一下用user_params代替


每當定義方法都會再建立一個符號 ex: def cat 就會有一個 :cat 功能相同

不
![](https://i.imgur.com/bM4aQl3.png)失敗部分 不使用redirect 使用render :sign_up 使資料保留並用sign_up.html.erb的畫面再畫一次頁面

![](https://i.imgur.com/j8iyVLp.png)
![](https://i.imgur.com/WjBYlSL.png)
![](https://i.imgur.com/OY8NxuC.png)
![](https://i.imgur.com/01vPQvs.png)
將 User.new 指定為@user,再sign_up設定實體變數@user 也把registration方法裡的變數設為@user因為registration裡 失敗時render sign_up頁面所以需要 @user這個變數因為我們將 form_for的參數改為@user 代替User.new 。故意湊成這樣的巧合


![](https://i.imgur.com/qEuaTrr.png) 可把所有css打包成1個檔案
require_tree .  require資料所有檔案

![](https://i.imgur.com/p38hCKV.png)手動增加scss檔寫css讓錯誤時格式正常
![](https://i.imgur.com/MBiElRp.png)

![](https://i.imgur.com/sKj3Xos.png)讓錯誤時跑出訊息![](https://i.imgur.com/34Dsq5j.png)

![](https://i.imgur.com/lbNJIrO.png) 在後面加上 取代原本的驗證
 
![](https://i.imgur.com/rKA4rI6.png) 把原本的驗證刪掉
 
![](https://i.imgur.com/ETYbMKx.png) 強參數裡的也要改

![](https://i.imgur.com/wD82V1u.png)做更多限制
    
![](https://i.imgur.com/VrjB586.png)成果畫面

![](https://i.imgur.com/ie2TMTs.png)做登出按鈕


![](https://i.imgur.com/E1dtNaa.png)logout_path路徑 去對照表找

![](https://i.imgur.com/bJ1Pxj4.png)
![](https://i.imgur.com/ylE3LDF.png)

![](https://i.imgur.com/QA3sG6B.png)
















