###前提・実現したいこと
Rubyでチェックボックスを利用した場合
なにもチェックしない場合に [] が返ってきてエラーになる。
チェックボックスのページから何も選択しないでOKボタンを押して次ページへ遷移した場合に"なにも選択してなければtopページへ戻る"という条件文を付け加えたいです。
###発生している問題・エラーメッセージ
NoMethodError in HomeController#seikan2 undefined method `[]' for nil:NilClass homeコントローラーのseikan2にて発生
###該当のソースコード
ruby
1home/hoge.html.erb 2 3<%= form_tag seikan2_path(@user.id) do %> 4 5<%= check_box_tag("condi[type][]", 11) %>項目1<br/> 6<%= check_box_tag("condi[type][]", 12) %>項目2<br/> 7<br> 8<%= check_box_tag("condi[type][]", 21) %>項目3<br/> 9<%= check_box_tag("condi[type][]", 22) %>項目4<br/> 10・ 11・ 12・
ruby
1↓遷移先のページでは、単純にチェックされた項目のvalueを表示させているだけです。 2home/seikan2.html.erb 3 4<%= params[:condi][:type][0] %><br> 5<%= params[:condi][:type][1] %><br> 6<%= params[:condi][:type][2] %><br> 7<%= params[:condi][:type][3] %><br> 8・ 9・ 10・
###試したこと
なにもチェックボックスに選択されなければ [] が返されるため下記のようなifを書いたのですが、エラーが出てしまいます。
どのような対策が必要でしょうか?
ruby
1homeコントローラー 2 3def seikan2 4 if params[:condi][:type] == [] 5 redirect_to root_path 6 end 7end
###補足情報(言語/FW/ツール等のバージョンなど)
Ruby on Rails 4.2.0
Ruby 2.3.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/15 09:40 編集