Как связать поля прямой загрузки с моделью, используя Cloudinary в Rails?

С помощью Cloudinary и их плагина Carrierwave я могу написать форму, которая, на мой взгляд, будет загружать изображение в их облако и привязывать его к атрибуту модели с именем picture, например так:

<%= form_for(@post) do |post_form| %>
  <%= post_form.hidden_field(:picture_cache) %>
  <%= post_form.file_field(:picture) %>
<% end %>

Это работает. Но я не могу понять, как связать атрибут с моделью, следуя их документации для прямой загрузки в Rails. В их примере используется form_tag, который не привязан к модели:

<%= form_tag(some_path, :method => :post) do  %>
  <%= cl_image_upload_tag(:image_id) %>
    ...
<%= end %>

Я ищу пример, похожий на <%= post_form.some_upload_method(:picture) %>. Есть ли шанс, что кто-то еще сделал это для прямой загрузки своих моделей и знает, что я ищу?


person hlh    schedule 27.12.2012    source источник
comment
Я делаю это с помощью запроса ajax после успешной загрузки файла.   -  person apneadiving    schedule 27.12.2012
comment
В вашем случае: когда загрузка будет завершена, публичный идентификатор Cloudinary вашего изображения будет добавлен в исходную форму и отправлен на ваш сервер. Используйте этот общедоступный идентификатор, если вы хотите получить доступ к загруженному изображению в будущем либо в его исходной форме, либо после использования преобразований изображения по требованию Cloudinary. Вы также можете заставить плагин вызывать процедуру обратного вызова Javascript после завершения загрузки в Cloudinary.   -  person apneadiving    schedule 27.12.2012


Ответы (1)


Вы можете использовать следующий синтаксис:

<%= post_form.cl_image_upload(:picture) %>
person Tal Lev-Ami    schedule 15.01.2013
comment
Большое спасибо! Вот награда. - person hlh; 15.01.2013