2011年7月7日木曜日

Railsのチェックボックスタグ

railsのチェックボックスタグ

railsのタグでよく迷うのが、
check_box と check_box_tag というような タグ名に"_tag" ありかどうか。

今回ハマったことは、
check_box_tag タグを用いた際に、チェックボックスにチェックが入ってないと
パラメータとして送信されないので、paramsの中に含まれなず、
コントローラ側の受け取りでparamsにあるかどうかチェックしたりしなくてはならないこと。

でも、check_box タグを使うとラクにできます。
こんなふうにかくと、単一の送信チェックボックスを作った場合。

<%= check_box("post","send",{:checked=>@xxx == "1"})%>

こんなふうに解釈されるのです。
チェックなし
<input id="post_send" name="post[send]" type="checkbox" value="1" />
<input name="post[send]" type="hidden" value="0" />
   
チェックあり
<input id="post_send" name="post[send]" type="checkbox" value="1" checked="checked" />
<input name="post[send]" type="hidden" value="0" />

もし、check_box_tag タグを使う場合は、hidden_field_tag タグと併用すると良いそうです。
参考: http://d.hatena.ne.jp/bottleneck/20070927/1190872024

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。