質問編集履歴

1 ただの修正

redara

redara score 333

2017/03/29 15:40  投稿

Railsのf.check_boxでhiddenフォームを出さない方法
Railsのf.check_boxを利用して入力フォームを作成していますが、
このヘルパーを利用すると自動的にunchecked用のhiddenフォームが出来てしまいます。
boolean値系の入力チェックボックスであればそれで有難いのですが、
複数のチェックボックスがあって複数のチェックが有り得るチェックボックスフォームなのでhiddenが邪魔になります。
```slim
-Item.all.each do |item|
 = f.check_box :items, {:checked => @user.items.include?(item), :name => "user[item_ids][]"}, item.id, ""
 = item.name
```
コントローラ側で入力値を受け取ろうとすると
params["item_ids"]=>["", "1", "", "2", "", "3"]
params[:user][:item_ids]=>["", "1", "", "2", "", "3"]
と余分なブランクがPOSTされてしまっています。
余分なブランクを除去することも可能ですが気持ち悪いのでPOSTされない制御にしたいです。
hiddenフォームを生成しない使い方はあるでしょうか?
  • Ruby on Rails

    15975 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る