как я могу сохранить фото без отправки формы, рельсы - PullRequest
3 голосов
/ 23 июня 2010

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

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

Скрепка:

У меня уже есть фотография, сохраненная с помощью скрепки.Это фото принадлежит лошади (модели).То, что я хочу сделать, - это когда новая лошадь создается и дает этой лошади ту же фотографию.так как я могу это сделать.Я пытался указать на эту картинку с помощью скрепки.Я только что скопировал атрибуты оригинальной фотографии.это не работает.Скрепка выглядит не в ту папку.

Итак, у меня есть фотомодель.это относится к модели лошади.С помощью скрепки необходимы 4 атрибута: data_content_type, data_file_name, data_file_size, data_updated_at.

Если я затем создаю новый экземпляр фотографии класса с помощью Photo.new и присваиваю ему четыре параметра скрепки, то paperclip ищет другое расположение, чтофайл сохранен в.

Что я могу сделать?Как я могу сохранить его в контроллере, не отправляя форму?(с papeclip (предпочтительно) или без)

спасибо за любые ответы

Ответы [ 3 ]

6 голосов
/ 23 июня 2010

Мне не совсем понятно, как вы делали свою предыдущую попытку, но я делаю это для назначения фотографий модельному объекту:

horse.photo = File.open("path/to/image/NameOfFile.extension")
horse.save!
1 голос
/ 23 июня 2010

Рассматривали ли вы использование опции paper_ip default_url? Если вы хотите использовать одну и ту же фотографию по умолчанию, это может быть вашим лучшим вариантом. В моем приложении пользователи могут загружать аватары, но если они еще этого не сделали, отображается изображение по умолчанию.

has_attached_file :avatar, 
                  :styles => { :thumb => "48x48#" },
                  :default_url => "/images/avatars/missing_avatar.png",
                  :default_style => :thumb
0 голосов
/ 23 июня 2010

Вам нужно использовать какой-нибудь Flash (или аналогичный технический) загрузчик файлов, так как невозможно загрузить файл через AJAX. Некоторые предложения для изучения: SWFUpload и Uploadify . Вы можете, вероятно, выкопать некоторые специфичные для Rails вспомогательные библиотеки для них также на GitHub

...