我使用ryanb' nested_form
gem创建了一些嵌套表单功能,到目前为止它完美无缺,但是当用户编辑一个条目时,我想显示当前值(在我的例子中是一个图像) )存在并允许删除此现有条目但无法弄清楚如何执行此操作。
到目前为止我的表单代码:
=f.fields_for :images do |image_form|
%p
%label Image
=image_form.file_field :image, :class => "form-control"
%p=image_form.link_to_remove "<i class=\"fa fa-trash-o\"></i> Remove image".html_safe
=f.link_to_add "<i class=\"fa fa-plus\"></i> Add image".html_safe, :images, :class => "btn btn-sm btn-default"
答案 0 :(得分:1)
管理自己寻找解决方案(虽然不确定这是否是最好的方法):
我添加了一个条件来检查现有对象(在我的情况下为@posting
)是否有图像,然后添加了一个计数器和image_tag
:
新代码:
=f.fields_for :posting_images do |image_form|
%p
%label Image
-if @posting.posting_images.size > 0
-if !@posting.posting_images[@pi_count].nil?
=image_tag @posting.posting_images[@pi_count].image, class: "img-thumbnail"
=image_form.file_field :image, :class => "form-control"
%p=image_form.link_to_remove "<i class=\"fa fa-trash-o\"></i> Remove image".html_safe
-@pi_count = @pi_count + 1
=f.link_to_add "<i class=\"fa fa-plus\"></i> Add image".html_safe, :posting_images, :class => "btn btn-sm btn-default"
到目前为止,它按设计工作。
注意:这适用于Paperclip
,Carrierwave
我认为代码看起来略有不同,但应该很容易适应。