Rails3 nested_form - 如何在编辑视图中显示当前值?

时间:2014-05-20 07:02:24

标签: ruby-on-rails ruby-on-rails-3

我使用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"

1 个答案:

答案 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"

到目前为止,它按设计工作。

注意:这适用于PaperclipCarrierwave我认为代码看起来略有不同,但应该很容易适应。