У меня установлен CarrierWave (0.6.1) и встроенный жемчуг. У меня есть модель ресурсов с множеством вложений, которые имеют FileUploader.CarrierWave и вложенная форма Gem Redisplay
У меня есть вложенная форма, где пользователи могут загружать несколько файлов одним ресурсом. Я следую разделу github (https://github.com/jnicklas/carrierwave), в котором говорится, как заставить загружать работу через redisplays, к сожалению, это только соотношение 1: 1.
Вот код, у меня есть:
<%= nested_form_for @resource, :html=>{:multipart => true } do |f| %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<%= f.fields_for :attachments, @attachment do |attachment_form| %>
<p>
<%= attachment_form.label :file %>
<%= attachment_form.file_field :file %>
<%= attachment_form.hidden_field :file_cache %>
<%= image_tag(attachment_form.file_url) if attachment_form.file? # DOESN'T WORK!!! %>
</p>
<%= attachment_form.link_to_remove "Remove this attachment" %>
<% end %>
<%= f.link_to_add "Add attachment", :attachments %>
<p><%= f.submit %></p>
<% end %>
Все работает, и это заполнит переменную file_cache просто отлично для attachment_form однако я как-то нужно добавить следующую строку там, чтобы показать пользователю образ документ:
Однако есть ряд проблем с этим. Прежде всего attachment_form ссылается на form_builder, тогда как я хочу фактическое вложение. Во-вторых, вложение ничего не знает о файле.
Возможно, необходимо использовать другой тип механизма зацикливания, но я новичок в Ruby, поэтому любая помощь оценивается.
Спасибо всем!
awesome! не совсем то, что мне нужно, но я не знал об атрибуте «объект» формы ... Я думаю, что я возглавляю в правильном направлении. благодаря! – schmudu
, но откуда берется объект. Я потерял ваш ответ. Я пытаюсь сделать это с жемчужиной стрекозы. – Benjamin