2015-07-10 17 views
5

Ich benutze Skydrive Edelstein in meiner Schienenanwendung.Skydrive Umbenennen Ordner

Für die Ordner umbenennen ich

def renaming_folder 
    client = Skydrive::Client.new(@@access_token) 
    folder_id = params[:folder_id] 
    # (url, {:body => options}) 
    # options = {name: "#{params[:rename_field]}"} 
    puts "-------------------..." 
    puts "#{params[:folder_id]}" 
    client.get_skydrive_object_by_id(folder_id) 

    # I believe issue comes from this line: 
    folderObject = client.update_skydrive_object("#{params[:folder_id]}", options={name: "#{params[:rename_field]}"}) 

    redirect_to drive_show_path 
end 

geschrieben hatte, aber ich bin immer http_error_400: Bad Request Fehler. Ich bekomme

{"utf8"=>"✓", 
"authenticity_token"=>"BAYGFcb5/74c7RV5NH1u4DCAT1MqLvLCkp9F3Q/Fav+B2wdab4aE5LBJAVr90MMu0GbfFwHTuLyncFRWtGyYTA==", 
"rename_field"=>"weqweqwe", 
"folder_id"=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!106", 
"commit"=>"Rename Folder"} 

in meinen Parametern.

Können einige bitte helfen? Auf der Suche nach einer Antwort aus glaubwürdigen und/oder offiziellen Quellen.

Ich bin in der Lage, alle Werte zu erhalten, wenn ich Puts hinzufüge.

Antwort

0

Der HTTP 400-Fehler bedeutet, dass der Server Ihre HTTP-Anfrage nicht verstehen konnte: http://pcsupport.about.com/od/findbyerrormessage/a/400error.htm.

"#{params[:folder_id]}" und "#{params[:rename_field]}" sind unnötige Wege, einfach zu sagen params[:folder_id] und params[:rename_field], die bereits Strings sind.

Do client.get_skydrive_object_by_id(folder_id).update(options={name: params[:rename_field].

sollte Ihre Lösung sein:

skydrive_folder = client.get_skydrive_object_by_id(folder_id) skydrive_folder.update(options = {name: params[:rename_field]})

Zum Vergleich: http://www.rubydoc.info/gems/skydrive/1.2.0/Skydrive/Operations#update_skydrive_object-instance_method http://www.rubydoc.info/gems/skydrive/Skydrive/Folder#update-instance_method

Quellcode:

Linie 119: https://github.com/ronyv89/skydrive/blob/master/lib/skydrive/operations.rb

Linie 44: https://github.com/ronyv89/skydrive/blob/master/lib/skydrive/client.rb

+0

Geändert skydrive_object = client.get_skydrive_object_by_id (folder_id) skydrive_object.update_skydrive_object (params [: folder_id], options = {name: params [: rename_field]}) aber es gibt NoMethodError: undefinierte Methode 'update_skydrive_object 'für # Fehler – Neha

+0

Auch auf leere Werte in der Option folderObject = client.update_skydrive_object ("# {params [: folder_id]}", options = {}) geprüft, dann gibt es Skydrive :: Error (http_error_400: Bad Request) – Neha

+0

Wenn Sie Haben Sie eine andere Option, dann lassen Sie es mich wissen. – Neha

Verwandte Themen