поля для изображений не отображаются в активной форме администратора

gem "formtastic", "~> 2.1.1" gem "activeadmin", "~> 0.4.2" gem "скрепка"

поля для фотографий не отображаются в активной форме администратора app/views/admin/products/_form.html.erb , но та же форма в app/views/products/_form.html.erb работает правильно в представлениях продукта

> приложение/admin/products.erb

ActiveAdmin.register Product do
form :partial => "form"
end

приложение/просмотры/админ/продукты/_form.html.erb

    <%= semantic_form_for  [:admin , @product ], :html => { :multipart => true } do |f| %>
    <%= f.semantic_errors :name , :price , :description, :category_id %>

    <%= f.inputs :new_product do%>
        <%= f.input :name %>
        <%= f.input :price %>
        <%= f.input :description %>
        <%= f.input :category_id , :as => :select , :collection => Hash[Category.all.map{|c| [c.name, c.id]}] %>
    <% end %>    

  <%= f.inputs "Product images" do %>
     <%= f.fields_for :prod_images do |p| %>

         <%= p.input :photo, :as => :file, :label => "Image",:hint => p.template.image_tag(p.object.photo.url(:thumb)) %>

         <%= p.input :_destroy, :as=>:boolean, :required => false, :label => 'Remove image' ,:hint => p.object.new_record? ? p.template.image_tag(p.object.photo.url(:thumb)) : p.template.image_tag(p.object.photo.url(:thumb)) %>

     <%end%> 
  <% end %>      

  <%= f.actions do %>
     <%= f.action :submit , :as => :button %>
  <% end %>

<% end %>

person user1291365    schedule 19.07.2012    source источник


Ответы (2)


Я нашел решение.

Если вы хотите использовать скрепку с active_admin, вы не можете отображать внешнюю форму, потому что она не может использовать в ней ассоциацию has_many. Мое решение:

ActiveAdmin.register Product do
  form :html => { :multipart=>true } do |f|
    f.inputs :new_product  do
      f.input :name
      f.input :price
      f.input :category
      f.input :description

      f.has_many :prod_images  do |p|
        p.input :photo, :as => :file, :label => "Image",:hint => p.template.image_tag(p.object.photo.url(:thumb)) 
        p.input :_destroy, :as=>:boolean, :required => false, :label => 'Remove image'
      end
    end

    f.buttons  
  end
end
person user1291365    schedule 23.07.2012
comment
Привет, я действительно изо всех сил пытаюсь заставить активного администратора работать со скрепкой и полиморфной ассоциацией. Что здесь делает :hint? - person Richlewis; 11.02.2014
comment
Richlewis, :hint используется для предварительного просмотра изображения внутри формы. - person user1291365; 08.09.2014

Для людей, которые приходят сюда, чтобы найти решение для отображения загруженных изображений скрепки в активном редактировании/новой форме администратора.

ActiveAdmin.register Product do

  form :html => { :enctype => "multipart/form-data" } do |f|
    f.inputs do
      f.input :title
    end

    f.inputs for: :prod_images do |product_image|
      if product_image.object.new_record?
        product_image.input :image
      else
        product_image.input :image, as: :file, hint: product_image.template.image_tag(product_image.object.image.url(:thumb))
      end
    end

    f.buttons
  end

Ключевой идеей здесь является использование атрибута подсказки.

person Nadeem Yasin    schedule 17.12.2013
comment
что на самом деле делает подсказка и какая разница? у меня проблемы с активным администратором и скрепкой для работы с полиморфной ассоциацией. Любой совет приветствуется - person Richlewis; 11.02.2014