2016-04-05 14 views
1

をチェックすると、私は私のアプリは、私は「レベル」と呼ばれる配列、それぞれが(ちょうど異なる値で)次のようになりますため、いくつかのチェックボックスがあります。レール、真と偽の両方f.check_box戻り

<%= f.check_box(:level, { :multiple => true, :id => 'level1', :class => 'input_values levels' }, 'All', 'false') %> 

マイ問題は、ボックスをチェックすると、値と 'false'の両方が得られることです。 「false」をnilに設定すると、ボックスのチェックを外すと何も得られません。

私は例えば、持っている場合は の間の選択 - すべての - 簡単に(チェック) - 中間(チェック) - ハード

私はこのような何かをプリントアウトして、「レベル」の配列が必要になります。

[ '偽'、 '簡単'、 '中間' '偽']今のところ、それはこのようなものプリントアウトしています

[ '偽'、 '偽'、 '容易'、 '偽'、 '中間' '偽']

私はActiveRecord ::ベース

serialize :level, Array 

マイコントローラ

def gamesession_params 
     params.require(:gamesession).permit(:players, :flares, :aliens, :gamesetup, expansion:[], level:[])  
end 
+0

「偽の」(文字列)が真..です ので、nilの代わりに答えのための「偽」 – siegy22

答えて

1

top comment in the APIが正しく指摘しています。'false'nilである必要があります。ルビーで

<%= f.check_box(:level, { :multiple => true, :id => 'level1', :class => 'input_values levels' }, 'All', nil) %>

+0

おかげに設定する方が良いだろう!しかし、私の問題は、それがnilに設定されていれば、それが偽であれば何も私の配列にプッシュしないということです。そして、私は配列の中で偽を言う必要がある。 – Candielope

+0

悲しいことに、あなたのデータモデルを投稿していないのですが、改善できるという疑いがあります。配列の値がnilまたはfalseであれば、あなたにとって重要ではありません。 –