Rails Paperclip с модельным объединением - PullRequest
1 голос
/ 16 июля 2010

У меня есть страница, где я могу просмотреть продукт, и непосредственно с этой страницы пользователь может добавлять и удалять несколько изображений, связанных с продуктом.Я использую скрепку в форме для загрузки нового файла.

Поскольку для продукта можно сохранить несколько изображений, я создал модель изображения, принадлежащую модели продукта.Невозможно использовать ввод файла скрепки по умолчанию из-за ассоциации.Мое решение, приведенное ниже, работает, но мне интересно, есть ли лучший способ сделать это в рельсах без всего того html-кода, который я взломал, чтобы заставить его работать.*

show.html.erb

<% @product.images.build %>
<%= form_for(@product, :html => { :multipart => true }) do |f| %>

<input id="image" name="product[images_attributes][<%= @product.images.count %>][photo]" >size="30" type="file" onchange="this.form.submit();" />

<% end %>

1 Ответ

1 голос
/ 16 июля 2010

Как вы, скорее всего, знаете, в вашем контроллере вы можете создать несколько пустых файловых входов с @product.images.build; тогда как, по вашему мнению, для редактирования и создания вы можете сделать что-то вроде этого:

<% f.fields_for :images do |img| %>

  <% if img.object.data_file_name %>
    <%= image_tag img.object.data.url(:thumb) %>
    <%= link_to 'Delete', img.object, {:method => :delete, :confirm => 'Are you sure?'} %>
  <% else %>
    <%= img.file_field :data %>
  <% end %>

<% end %>

В этом конкретном примере требуется контроллер изображений с действием уничтожения, но он должен работать довольно хорошо, даже если изображения полиморфны.

...