【问题标题】:Showing if there is an image in a nested form with Carrier Wave gem使用 Carrier Wave gem 显示是否存在嵌套形式的图像
【发布时间】:2013-10-28 20:44:09
【问题描述】:

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

这是我的代码:

型号

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>

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!但它只有在我输入 f.object.image.url 时才有效,当我尝试打印 f.object.image.identifier 时,它返回 nil。
    猜你喜欢
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多