ヘルパー collection_radio_buttons を使用して画像をラベルとして表示しようとしていますが、image_id をモデルに保存して URL を取得できるようにしたいと考えています。これまでのところ、ラジオ ボタンと image_url をラベル。
私がすでに気づいたことは、ラジオ ボタンを 1 回しかクリックできず、オンの状態のままであるということです。
<%= f.collection_radio_buttons(:default_image_id, DefaultImage.all, :id, :image) %>
生成された html は次のようになります。
<input id="campaign_default_image_id_1" name="campaign[default_image_id]" type="radio" value="1" />
<label for="campaign_default_image_id_1">https://calcuttatest.s3.amazonaws.com/uploads/default_image/image/1/vandals_portfolio.png</label>
これを正しく設定するにはどうすればよいですか? ラベルを image_tag でラップできますか?
編集
したがって、さらに調査してこれをつなぎ合わせようとした後、画像とラジオボタンをレンダリングできるようになりましたが、画像は、サイズを変更した :small バージョンではなく、carrierwave でアップロードしたデフォルトの画像です。:small バージョンを渡すことはできますか?
<%= f.collection_radio_buttons(:default_image_id, DefaultImage.all, :id, :image) do |b| %>
<%= b.label { image_tag("#{b.text}") + b.radio_button } %>
b.text は URL を取得します
https://calcuttatest.s3.amazonaws.com/uploads/default_image/image/2/ymca_portfolio.png
しかし、次のように、ファイル名の前に fancy_box_array を付けたいと思います。
https://calcuttatest.s3.amazonaws.com/uploads/default_image/image/2/fancy_box_array_ymca_portfolio.png
この新しいコードで生成された html は次のとおりです。
<label for="campaign_default_image_id_1"><img alt="Vandals portfolio" src="https://calcuttatest.s3.amazonaws.com/uploads/default_image/image/1/vandals_portfolio.png" />
<input id="campaign_default_image_id_1" name="campaign[default_image_id]" type="radio" value="1" /></label>
ありがとう