我正在尝试使用帮助程序collection_radio_buttons将图像显示为标签,并希望将image_id保存到模型中以便我可以检索网址,到目前为止我已经想出了这个显示单选按钮和image_url作为标签
我已经注意到的一点是,我只能点击一次单选按钮然后才能保持其开启状态
<%= 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中吗?
任何帮助表示赞赏
修改
所以经过一些谷歌搜索并尝试将它拼凑在一起后,我现在可以渲染一个图像和一个单选按钮,但图像是我用carrierwave上传的默认图像,而不是调整大小:我想要的小版本.can我通过了:小版本?
<%= f.collection_radio_buttons(:default_image_id, DefaultImage.all, :id, :image) do |b| %>
<%= b.label { image_tag("#{b.text}") + b.radio_button } %>
b.text检索网址
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>
感谢
答案 0 :(得分:5)
你想要做的事情有一个很好的reference。尝试类似:
f.collection_radio_buttons(:default_image_id, DefaultImage.all, :id, :image) do |b|
b.label { b.radio_button + image_tag(b.object.image) }
end