私の Rails 3.2.13 アプリは、ラベル付きのチェックボックス配列 (同じフィールド名に対して複数の可能な値) を使用します。
%table
%tr
%td
= check_box_tag 'fruits[]', 'apple'
%td
= label_tag 'fruits[apple]', 'I like Apples'
%tr
%td
= check_box_tag 'fruits[]', 'banana'
%td
= label_tag 'fruits[banana]', 'I like Bananas'
フォームは params[:fruits] => ['apple', 'banana'] として params のチェックボックスを正しく送信します
しかし、ラベルが壊れています - ラベルをクリックしても何も起こりません。(html ラベル タグは for = 'fruits_xxxx' ですが、すべてのチェックボックスの ID は id = 'fruits_' であるため、ラベルはチェックボックスに関連付けられません。)
check_box_tag と正しく関連付けられるように label_tag を指定するにはどうすればよいですか? (ラベルタグに :value を使用してみました= label_tag 'fruits[]', I like Apples', :value => 'apple'
が、それも機能しませんでした)
注:私が最も近いのは、ラベルのようにラベルタグにブロック形式を使用することです(ラベル内にチェックボックスを配置する)が機能しますが、ブロック構造を使用すると、チェックボックスとラベルを別々のセルに配置できなくなります:
= label_tag do
= check_box_tag 'fruits[]', 'apple'
I like Apples
= label_tag do
= check_box_tag 'fruits[]', 'banana'
I like Bananas