---
# System prepended metadata

title: form_with & form_for差異

---

# form_with & form_for差異

* 支持的表單類型：
    - form_with 支持所有類型的表單，包括傳統的表單、remote 表單、local 表單和 turbo 表單。
    - form_for 只支持傳統的表單。

* 自動檢測表單提交類型：
    - form_with 可以自動檢測表單提交的類型，並生成適當的 HTML 屬性。
    - form_for 不能自動檢測表單提交類型，必須手動指定表單提交方式。

* 自動生成 name 和 id 屬性：
    - form_with 和 form_for 都可以自動為表單輸入生成適當的 name 和 id 屬性，這樣在控制器中處理表單數據時會更加方便。




> 總結...
> 
> 如果你需要支持多種表單類型，或者需要自動檢測表單提交類型，那麼使用 form_with 會更加方便。
> 
> 但如果你只需要支持傳統的表單，並且不需要自動檢測表單提交類型，那麼 form_for 可能更加適合你的需求。