Скрепка и рельсы Api - PullRequest
       2

Скрепка и рельсы Api

0 голосов
/ 17 октября 2010

У меня есть приложение для рельсов фотографий с использованием скрепки.Моя модель называется photo и параметр запроса также photo . Поэтому, когда я пытаюсь загрузить через curl, я использую: curl -F "photo [photo] = @ / pics / pic.JPG "http://something/photos.xml.Это отлично работает!Как я могу изменить параметр фото [фото] на «фото» или «медиа» или что-то еще?Как я могу изменить URL-адрес конечной точки?(например, http // что-то / upload.xml)

спасибо!любая помощь будет высоко оценена,: -)

1 Ответ

2 голосов
/ 18 октября 2010

Что вы можете сделать, это настроить другой контроллер и работать с ним. Что делает paperclip - это просто устанавливает дополнительный атрибут «photo» и методы, тем самым повторно используя собственные методы Rails .new и .update_attributes. Таким образом, когда вы вызываете /photos.xml с этой информацией, вы просто делаете обычное действие после публикации фотографии с дополнительным преимуществом настройки его изображения.

Когда вы делаете Object.photo = YOUR_PHOTO, вы фактически используете код Paperclip.

Итак, вы можете работать с чем-то вроде:

class ApplicationController < ActiveController::Base

 def upload
  photo = Photo.new
  photo.photo = params[:photo]
  # ... extra code
  photo.save
  render :text => "Ok"
 end

end

И добавьте маршрут как:

map.upload "/upload(.:format)", :controller => "application", :action => "upload" 

(или это эквивалент Rails3, если вы его используете)

Таким образом, когда вы делаете 'curl -F "photo=@/pics/pic.jpg" http://something/upload.xml',, вы вызываете действие загрузки и создаете фотографию, используя параметр' photo '. Photo = params [: photo] возьмет загруженный вами временный файл и продолжит выполнение обычных задач со скрепкой:)

...