<commit_before># [Form Helpers][fh]

表單（Form）是給使用者輸入的介面，web application 裡面最基礎的元素之一。表單寫起來很繁瑣，Rails 提供很多有用的 helper 讓你快速製造出不同需求的表單。

# 1. 簡單的表單

最基本的 form helper：`form_tag`

```erb
<%= form_tag do %>
  Form contents
<% end %>
```

按下表單送出時，會對頁面做 POST。假設上面這個表單在 `/home/index`，產生的 HTML 如下：

```html
<form accept-charset="UTF-8" action="/home/index" method="post"><commit_msg>Update articles/ActionView/form_helpers-RG.md @ 2013-09-15 12:04:16 UTC :helicopter:<commit_after># [Form Helpers][fh]

表單（Form）是給使用者輸入的介面，web application 裡面最基礎的元素之一。表單寫起來很繁瑣，Rails 提供很多有用的 helper 讓你快速製造出不同需求的表單。

## 目錄

* [1. 簡單的表單](1-簡單的表單)
* [2. 處理 Model Object 的 Helpers](2-處理-model-object-的-helpers)
* [3. 輕鬆製作下拉式選單](3-輕鬆製作下拉式選單)
* [4. 使用日期與時間的](4-使用日期與時間的-form-helpers)
* [5. 上傳檔案](5-上傳檔案)
* [6. 客製化 Form Builders](6-客製化-form-helpers)
* [7. 了解參數的命名規範](7-了解參數的命名規範)
* [8. 給外部 resource 使用的表單](8-給外部-resource-使用的表單)
* [9. 打造複雜的表單](9-打造複雜的表單)

# 1. 簡單的表單

最基本的 form helper：`form_tag`

```erb
<%= form_tag do %>
  Form contents
<% end %>
```

按下表單送出時，會對頁面做 POST。假設上面這個表單在 `/home/index`，產生的 HTML 如下：

```html
<form accept-charset="UTF-8" action="/home/index" method="post">
{'fraction_non_alphanumeric': 0.18054338299737072, 'fraction_numerical': 0.03155127081507449, 'mean_word_length': 5.344444444444444, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '656744', 'n_tokens_mistral': 742, 'n_tokens_neox': 797, 'n_words': 91}