显示是否存在带有Carrier Wave gem的嵌套表单中的图像

时间:2013-10-28 20:44:10

标签: ruby-on-rails carrierwave nested-forms

我正在做一个大型嵌套表单,用户可以在其中上传每个嵌套表单的图像。 但我怀疑。如果已经将图像上传到每个嵌套表单,我如何在编辑表单时向用户显示?我想在文件加载器输入旁边显示图像文件名,但我不知道该怎么做。

这是我的代码:

模型

class Chapter < ActiveRecord::Base
  attr_accessible :content, :reference, :story_id, :image, :decisions_attributes

  mount_uploader :image, ImageUploader
end

查看

<%= simple_form_for(@story) do |f| %>
    <%= f.simple_fields_for :chapters do |builder| %>
      <%= render "chapters_fields", f: builder %>
    <% end %>
    <p>
      <%= link_to_add_fields "Add chapters", f, :chapters, "chapters" %>
    </p>
<% end %>

表单部分

  <div class="chapter-fields">
      <h3>Chapter</h3>
      <p>
        <%= f.input :reference %>
        <%= f.input :content, as: :text, input_html: { rows: 10, style: 'width: 100%' } %>
        <%= f.input :image %>
        <%= f.image_url %>
      </p>
      <div>
        <%= f.simple_fields_for :decisions do |builder| %>
          <%= render "decisions_fields", f: builder %>
        <% end %>
        <%= link_to_add_fields "Add decisions", f, :decisions, "decisions" %>
      </div>
      <p><%= link_to_remove_fields "Remove chapter", f, "chapter" %></p>
    </div>

1 个答案:

答案 0 :(得分:0)

您可以通过object关键字访问表单构建器变量后面的对象。

if f.object.image.blank?
  "No current image"
else
  "Current image: #{f.object.image.url}"
end

注意:仅当您的accepts_nested_attributes_for :chapters模型中有Story时才有效。