<commit_before># [Form Helpers][fh]

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

## 目錄

- [1. 簡單的表單](#1-簡單的表單)
  - [1.1 通用搜索表單](#11-通用搜索表單)
    - [1.2 Form Helper 呼叫裡傳多個 Hash](#12-form-helper-呼叫裡傳多個-hash)
    - [1.3 生成表單的 Helpers](#13-生成表單的-helpers)
      - [1.3.1 Checkbox](#131-checkbox)
      - [1.3.2 Radio Buttons](#132-radio-buttons)
    - [1.4 Other Helpers of Interest](#14-other-helpers-of-interest)
- [2. 處理 Model Object 的 Helpers](#2-處理-model-object-的-helpers)
  - [2.1 Model Object Helpers](#21-model-object-helpers)
  - [2.2 將表單綁定至 Object](#22-將表單綁定至-object)
  - [2.3 Record Identification](#23-record-identification)
    - [2.3.1 處理 namespace](#231-處理-namespace)
  - [2.4 PATCH、PUT、DELETE 表單是怎麼工作的？](#24-patch、put、delete-表單是怎麼工作的？)
- [3. 輕鬆製作下拉式選單](#3-輕鬆製作下拉式選單)
  - [3.1 Select 與 Option 標籤](#31-select-與-option-標籤)
  - [3.2 處理 Models 的下拉選單](#32-處理-models-的下拉選單)
  - [3.3 從任意 objects 集合來的 option tags](#33-從任意-objects-集合來的-option-tags)
  - [3.4 Time Zone 與 Country](#34-time-zone-與-country)
- [4. 使用日期與時間的 Form Helpers](#4-使用日期與時間的-form-helpers)
    - [Barebones Helpers](#barebones-helpers)
    - [Model Object Helpers](#model-object-helpers)
    - [4.3 常見選項](#43-常見選項)
    - [4.4 單一選項](#44-單一選項)
- [5. 上傳檔案](#5-上傳檔案)
    - [5.1 究竟上傳了什麼？](#51-究竟上傳了什麼)
    - [5.2 處理 Ajax](#52-處理-ajax)
- [6. 客製化 Form Builders](#6-客製化-form-builders)
- [7. 了解參數的命名規範](#7-了解參數的命名規範)
- [8. 給外部 resource 使用的表單](#8-給外部-resource-使用的表單)
- [9. 打造複雜的表單](#9-打造複雜的表單)<commit_msg>:tiger: Update articles/ActionView/form_helpers-RG.md @ 2013-09-15 15:09:05 UTC<commit_after># [Form Helpers][fh]

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

## 目錄

- [1. 簡單的表單](#1-簡單的表單)
  - [1.1 通用搜索表單](#11-通用搜索表單)
    - [1.2 Form Helper 呼叫裡傳多個 Hash](#12-form-helper-呼叫裡傳多個-hash)
    - [1.3 生成表單的 Helpers](#13-生成表單的-helpers)
      - [1.3.1 Checkbox](#131-checkbox)
      - [1.3.2 Radio Buttons](#132-radio-buttons)
    - [1.4 Other Helpers of Interest](#14-other-helpers-of-interest)
- [2. 處理 Model Object 的 Helpers](#2-處理-model-object-的-helpers)
  - [2.1 Model Object Helpers](#21-model-object-helpers)
  - [2.2 將表單綁定至 Object](#22-將表單綁定至-object)
  - [2.3 Record Identification](#23-record-identification)
    - [2.3.1 處理 namespace](#231-處理-namespace)
  - [2.4 PATCH、PUT、DELETE 表單是怎麼工作的？](#24-patch、put、delete-表單是怎麼工作的？)
- [3. 輕鬆製作下拉式選單](#3-輕鬆製作下拉式選單)
  - [3.1 Select 與 Option 標籤](#31-select-與-option-標籤)
  - [3.2 處理 Models 的下拉選單](#32-處理-models-的下拉選單)
  - [3.3 從任意 objects 集合來的 option tags](#33-從任意-objects-集合來的-option-tags)
  - [3.4 Time Zone 與 Country](#34-time-zone-與-country)
- [4. 使用日期與時間的 Form Helpers](#4-使用日期與時間的-form-helpers)
    - [Barebones Helpers](#barebones-helpers)
    - [Model Object Helpers](#model-object-helpers)
    - [4.3 常見選項](#43-常見選項)
    - [4.4 單一選項](#44-單一選項)
- [5. 上傳檔案](#5-上傳檔案)
    - [5.1 究竟上傳了什麼](#51-究竟上傳了什麼)
    - [5.2 處理 Ajax](#52-處理-ajax)
- [6. 客製化 Form Builders](#6-客製化-form-builders)
- [7. 了解參數的命名規範](#7-了解參數的命名規範)
  - [7.1 基本結構](#71-基本結構)
  - [7.2 結合起來](#72-結合起來)
  - [7.3 使用 Form Helpers](#73-使用-form-helpers)
- [8. 給外部的 resource 使用的表單](#8-給外部的-resource-使用的表單)
- [9. 打造複雜的表單](#9-打造複雜的表單)
  - [9.1 設定 Model](#91-設定-model)
  - [9.2 製作表單](#92-製作表單)
  - [9.3 控制器層面](#93-控制器層面)
    - [9.4 移除 Objects](#94-移除-objects)
    - [9.5 避免有空的 Record](#95-避免有空的-record)
    - [9.6 動態加入 Fields](#96-動態加入-fields)
{'fraction_non_alphanumeric': 0.20352941176470588, 'fraction_numerical': 0.07352941176470588, 'mean_word_length': 3.343550446998723, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, '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': '3090071', 'n_tokens_mistral': 2158, 'n_tokens_neox': 2236, 'n_words': 244}