Neh*_*eha 5 ruby-on-rails-4 onedrive
我在我的rails应用程序中使用Skydrive gem.
用于重命名我编写的文件夹
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
Run Code Online (Sandbox Code Playgroud)
但我收到http_error_400:错误请求错误.我正进入(状态
{"utf8"=>"?",
"authenticity_token"=>"BAYGFcb5/74c7RV5NH1u4DCAT1MqLvLCkp9F3Q/Fav+B2wdab4aE5LBJAVr90MMu0GbfFwHTuLyncFRWtGyYTA==",
"rename_field"=>"weqweqwe",
"folder_id"=>"folder.cecb8eb83d90dbeb.CECB8EB83D90DBEB!106",
"commit"=>"Rename Folder"}
Run Code Online (Sandbox Code Playgroud)
在我的参数.
有人可以帮忙吗?寻找可信和/或官方来源的答案.
当我添加puts时,我能够获得所有值.
HTTP 400 错误意味着服务器无法理解您的 HTTP 请求:http://pcsupport.about.com/od/findbyerrormessage/a/400error.htm。
"#{params[:folder_id]}"and"#{params[:rename_field]}"是不必要的方式,只是说params[:folder_id]and params[:rename_field],它们已经是字符串了。
做client.get_skydrive_object_by_id(folder_id).update(options={name: params[:rename_field]。
你的解决方案应该是:
skydrive_folder = client.get_skydrive_object_by_id(folder_id)
skydrive_folder.update(options = {name: params[:rename_field]})
供参考: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
源代码:
第 119 行:https://github.com/ronyv89/skydrive/blob/master/lib/skydrive/operations.rb
第 44 行:https://github.com/ronyv89/skydrive/blob/master/lib/skydrive/client.rb
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |