---
# System prepended metadata

title: 20221121 Rails
tags: [Ruby & Rails]

---

# 20221121 Rails
###### tags: `Ruby & Rails`
<政庭>
### commit 功能
* belong_to user
* user_id: integer

### 留言 軟刪除 (soft delete)

t.boolean "is_deleted", default: false

t.datetime "delete_at", default: nil

### default_scope 寫在modlel裡面，不管你要不要它都會在。

### 要拿掉default_scope的話，必須使用unscope才能拿掉它。

### 把`destroy actoin`搬到model裡面，自己動手寫一個。這樣wishlistcontroller就可以保持它的原本樣貌。
### 可以為程式碼保持好的閱讀性。很直覺。

## paranoia 套件 (它就是在做假刪除)
* 使用 bundle add paranoia 指令安裝這個套件
* 在 `WishList` Model增加一行 `acts_as_paranoid`，就可以把paranoia這個套件做的事情，加到專案當中。
* 建立一個新的 Model 名稱：Commit 
rails g model Comment content:text deleted_at:datetime:index user:belongs_to
* 建立路徑

* 建立一個CommentsController
rails g controller comments
* merge(user: currernt_user)可以合併某個hash到其他hash裡面，並回傳新的hash。
* 讓最新的留言可以排序在最上面







---
<侑庭>

軟刪除實作 

t.boolean "is_delete" , default: false


t.datetime "delete_at" , default: nil











---
<于婷>

## paranoia 套件
自動軟刪除

## comment 留言功能
路徑的巢狀結構

## foreman 套件
同時開啟多個伺服器