как я могу сохранить фото без отправки формы, рельсы

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

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

Скрепка для бумаг:

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

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

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

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

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


person necker    schedule 22.06.2010    source источник
comment
Я знаю, что этот пост старый, но вы поняли это? Я пытаюсь сделать то же самое.   -  person Tony Tambe    schedule 16.01.2015
comment
Честно говоря, я не могу вспомнить, что я в итоге сделал. Я думал минут 10 и вспомнил. Мне пришлось назначить Лошади какое-то фото по умолчанию. Итак, я сохранил, скажем, 10 фотографий с фото_1, фото_2 и т. д. Затем к модели лошади я добавил has_attached_file с :default_url =› horse_images/:horse_random_number_:style.jpg; которая представляла собой комбинацию случайного числа и стиля фотографии (скажем, гонки, отдых и т. д.), переменная для :style и :horse_random_number сохранялась при создании лошади. Не уверен, что это поможет, но ..., надеюсь, вы разберетесь.   -  person necker    schedule 16.01.2015
comment
Спасибо за попытку! Я пытаюсь, чтобы пользователь щелкнул одну запись и открыл новую форму с изображением из этой записи, вставленным в форму, чтобы он был готов к публикации. Вот мой вопрос, если у вас есть больше информации: stackoverflow.com/questions/27810317/   -  person Tony Tambe    schedule 16.01.2015


Ответы (3)


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

horse.photo = File.open("path/to/image/NameOfFile.extension")
horse.save!
person sosborn    schedule 23.06.2010

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

has_attached_file :avatar, 
                  :styles => { :thumb => "48x48#" },
                  :default_url => "/images/avatars/missing_avatar.png",
                  :default_style => :thumb
person Peter Brown    schedule 23.06.2010
comment
Я делаю то же самое для аватара. но здесь путь к фотографии, которую я хочу сохранить, всегда разный. спасибо за ваш ответ в любом случае. - person necker; 23.06.2010

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

person Tanel Suurhans    schedule 23.06.2010
comment
Похоже, Некер хочет использовать существующую фотографию, которая уже есть на сервере, а не загружать новую. - person Peter Brown; 23.06.2010