WebHelper rails form_tag チート集


webhelpers.rails.form_tag

formタグを生成する(h.form、h.start_form、h.end_form)
selectタグを生成する(h.select)
テキストボックスを生成する(h.text_field)
hiddenタグを生成する(h.hidden_field)
file_field、password_field、textareaを生成する(h.file_field)
check_box、radio_buttonを生成する(h.check_box、h.radio_button)
submitタグを生成する(h.submit)


formタグを生成する(h.form、h.start_form、h.end_form)



formタグを生成するには、


${h.form(h.url(action='test'))}


としてやります。
そうすると、こんなHTMLが生成されます。


<form action="/makotest/test" method="POST">


multipart=True
という引数を追加してやると


<form action="/makotest/test" enctype="multipart/form-data" method="POST">


enctypeが追加され、ファイルのアップロードが行えるようになります。


ちなみに、start_formというメソッドもありますが、
ソースを見てみると・・・


start_form = form


formと全く同じですね。


h.formだと、formの開始タグしか出力されないので、

${h.end_form()}


で終了タグを出力する必用があります。


selectタグを生成する(h.select)



selectタグを生成するには


${h.select('select_test', '<option>George</option><option>Yahoo</option>')}


これで、こんな感じのHTMLが出力されます。


<select id="select_test" name="select_test">
<option>George</option>
<option>Yahoo</option>
</select>


selectタグで、第二引数を囲ってくれます。

multiple=True
の引数を追加すると


<select id="select_test" multiple="multiple" name="select_test">
<option>George</option>
<option>Yahoo</option>
</select>


複数選択可能なリストが表示されます。

第二引数にタグを書かないといけないのはめんどくさいですが、
from_optionsを使用するともっとスマートにかけるようにかります。



テキストボックスを生成する(h.text_field)



text_fieldを使用すると、簡単にテキストボックスの
タグが生成できます


${h.text_field('text_test',value='default_value')}


出力されるHTMLはこんな感じ


<input id="text_test" name="text_test" type="text" value="default_value" />


そのほか、指定できるオプションとして
disabled=True
入力不可にする。

size=50
テキストボックスのサイズ

maxlength=10
最大入力値


${h.text_field('text_test',value='default_value',disabled=True,size=50,maxlength=10)}


こうしてやると、出力されるHTMLは


<input disabled="disabled" id="text_test" maxlength="10" name="text_test" size="50" type="text" value="default_value" />


こうなります。

hiddenタグを生成する(h.hidden_field)



hiddenタグを出力するには


${h.hidden_field('hidden_field',value='hidden_value')}


これで、こんな感じのHTMLが出力されます。


<input id="hidden_field" name="hidden_field" type="hidden" value="hidden_value" />


file_field、password_field、textareaを生成する(h.file_field)



ファイルの選択欄を生成するには


${h.file_field('file_field',value='file_field_value')}


出力されるHTMLはこんな感じです。


<input id="hidden_field" name="hidden_field" type="hidden" value="hidden_value" />




パスワードの入力欄を生成するには


${h.password_field('password_field',value='value')}


こんな感じのHTMLが出力されます。


<input id="password_field" name="password_field" type="password" value="value" />



最後にテキストエリアは


${h.text_area('area',content='value',size='10x5')}


出力されるHTMLはこうなります。


<textarea cols="10" id="area" name="area" rows="5">value</textarea>



size='[cols]x[rows]'
で指定します。

ちょっとトリッキー

check_box、radio_buttonを生成する(h.check_box、h.radio_button)



check_boxのタグを生成するには


${h.check_box('check_box_name', value='10')}


生成されるHTMLは


<input id="check_box_name" name="check_box_name" type="checkbox" value="10" />


また、
checked=True
の引数を追加すると、チェックが付いた状態で表示されます。


radio_buttonのタグを生成するには


${h.radio_button('radio_button_name',value='20')}


こんな感じのHTMLとなります。


<input id="radio_button_name_20" name="radio_button_name" type="radio" value="20" />


check_boxと同様に
checked=True
の引数を追加すると、チェックが付いた状態で表示されます。

submitタグを生成する(h.submit)



submitタグを作りたい場合は


${h.submit()}


これだけでOKです。
出力されるHTMLは


<input name="commit" type="submit" value="Save changes" />



値を変更したい場合は・・・

・ボタンの表示名
value=u'保存'

・ボタンの名前
name='commit'

・confirm=u'確認'
ボタンを押した後、Javascriptで確認メッセージを表示

, disable_with=True
ボタンを押した後、ボタンをdisableにする。


なかなか高機能です。


もどる