AvtionViewの流れ
ActionViewでhtmlタグが生成されるまでの流れを追いました。
とりあえずform_tagのコードを探します。
ここのL67:L74です
def form_tag(url_for_options = {}, options = {}, &block) html_options = html_options_for_form(url_for_options, options) if block_given? form_tag_with_body(html_options, capture(&block)) else form_tag_html(html_options) end end
このメソッドではform_tag_htmlを呼んでいます。
def form_tag_html(html_options) extra_tags = extra_tags_for_form(html_options) tag(:form, html_options, true) + extra_tags end def form_tag_with_body(html_options, content) output = form_tag_html(html_options) output << content output.safe_concat("</form>") end
このメソッドではtagを呼んでいます
def tag(name, options = nil, open = false, escape = true) "<#{name}#{tag_options(options, escape) if options}#{open ? ">" : " />"}".html_safe end
tag()でformタグが作られ、form_tag_with_bodyで中身と閉じタグが作られます。