2010-10-17 6 views
0

J'ai une application de rails photo en utilisant un trombone. Mon modèle appelé photo et le paramètre de demande aussi photo. Donc quand j'essaye de télécharger via curl j'utilise: curl -F "photo [photo] = @/pics/pic.jpg" http://something/photos.xml. Ça marche très bien! Comment puis-je changer le paramètre photo [photo] en "photo" ou "média" ou autre chose? Comment puis-je changer l'URL du point de terminaison? (ex: http // something/upload.xml)Paperclip & Rails Api

merci! toute aide sera très appréciée, :-)

Répondre

2

Ce que vous pouvez faire est de configurer un autre contrôleur et de travailler avec. Ce que paperclip fait est juste de mettre en place un attribut et des méthodes "photo" supplémentaires, réutilisant ainsi les propres méthodes Rails .new et .update_attributes. De cette façon, lorsque vous appelez /photos.xml avec cette information, ce que vous faites est juste une action post photo régulière, avec l'avantage supplémentaire de configurer son image.

Lorsque vous faites Object.photo = YOUR_PHOTO, vous utilisez actuellement un code Paperclip.

Ainsi, vous pouvez travailler avec quelque chose comme:

class ApplicationController < ActiveController::Base 

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

end 

Et ajouter une route comme:

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

(ou son équivalent Rails3 si vous utilisez)

de cette façon , lorsque vous faites 'curl -F "[email protected]/pics/pic.jpg" http://something/upload.xml', vous appelez l'action de téléchargement et créez une photo en utilisant le paramètre 'photo'. La photo = params [: photo] prendra le fichier temporaire que vous avez chargé et continuera avec les tâches habituelles du trombone :)

+0

Ceci est très utile, cela m'aide beaucoup. Merci! ;-) – Lamp

+0

Je suis heureux d'avoir pu vous aider :) – Yaraher

Questions connexes