Ruby on Rails 3.0.11 と Capybara 1.1.2 で受け入れテストを行っており、フォームで 2 つのチェックボックスを選択しようとしています。
チェックボックスのビュー コードは次のとおりです (haml 3.1.3 と simple_form 2.0.4 を使用):
= f.input :countries,
:collection => MusicTeaser.teaser_countries,
:as => :check_boxes
コレクションは次のようになります。
[["AT", "at"], ["CH", "ch"], ["DE", "de"], ["ZA", "za"]]
そして生成されたHTML:
<div class="input check_boxes optional">
<label class="check_boxes optional control-label">Countries</label>
<label class="checkbox">
<input class="check_boxes optional" id="music_teaser_countries_at" name="music_teaser[countries][]" type="checkbox" value="at">AT
</label>
<label class="checkbox">
<input class="check_boxes optional" id="music_teaser_countries_ch" name="music_teaser[countries][]" type="checkbox" value="ch">CH
</label>
<label class="checkbox">
<input class="check_boxes optional" id="music_teaser_countries_de" name="music_teaser[countries][]" type="checkbox" value="de" checked="">DE
</label>
<label class="checkbox">
<input class="check_boxes optional" id="music_teaser_countries_za" name="music_teaser[countries][]" type="checkbox" value="za">ZA
</label>
<input name="music_teaser[countries][]" type="hidden" value="">
</div>
それらを選択するコードは次のようになります (非常に簡単です)。
check 'music_teaser_countries_de'
check 'music_teaser_countries_za'
送信時に、countries
パラメーターは次のようになると予想していました。
params[:music_teaser][:countries] = ["de", "za"]
しかし、次のように表示されます。
params[:music_teaser][:countries] = ["deza"]
複数のチェックボックスを選択すると、カピバラが何か間違ったことをしているようです。アイデア?