filelds_forの中のlabel

まぁlabelに限ったことではないんだろうけど、filelds_forの中ではf.ではなくてfilelds_forでdo |hoge|としたhoge.になることに注意。

これだけだと後で何のことか忘れそうだから

itemのform_forの中で

= f.fields_for :images do |image|
.js-file_group{"data-index" => "#{image.index}"}
= image.label :image, class: "form-image" do
ここにアイコンでも入れるか
= image.file_field :image, class:"js-file"
%span.js-remove 削除

こんなfilelds_for書いてた時の話なんだけど、普段f.text_field, f.file_field, f.number_fieldとかで書く部分はfields_for :テーブル名 do |hogehoge| とした部分のhogehoge.になってるのがわかると思う。きちんと使い方わかってなかったてだけの話なんだけど、

よくある感じのfile_fieldをdisplay:none;で消して

file_fieldを囲んでるラベルの方にcssあててボタン押させる(中にアイコンとかよく入れる)ってやつをやってた時にf.labelとか馬鹿なこと書いてたのでメモ。今回はimage.labelとすればちゃんとfile_fieldが反応してくれた。