为什么说RestClient Delete Method的参数数量错误?

时间:2013-08-06 07:28:21

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rest-client

我一直在使用RestClient来调用API,所以在这里我调用DELETE方法来删除一个图像:

@mposter_D = params[:mposter_D]
@mid_D = params[:mid_D]
req = Hash.new
req['mov'] = @mid_D

puts "....#{req.to_json}"
resource_pos = RestClient::Resource.new
Rails.application.config.sta_url+"/movi/pos/"+@mposter_D 
response_pos = resource_pos.delete req.to_json, :content_type => :json

在打电话给我之后我得到了这个:

ArgumentError (wrong number of arguments (2 for 1)): in the last line of code

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。显然,在执行delete方法时,您无法从url中传递参数。 (即这不起作用:http://example.com/resource?foo=bar&baz=qux

如果您需要在删除请求中添加参数,请使用以下格式:

RestClient.delete 'http://example.com/resource', :params => {:foo => 'bar', :baz => 'qux'}

See the restclient docs section called Query Parameters

答案 1 :(得分:0)

我所知道的关于通过rest_client删除的是,它只需要一个参数:

RestClient.delete 'http://demo.com/your_resourse'

你必须通过该方法传递你的网址。感谢

答案 2 :(得分:0)

试试这个:

RestClient.delete 'http://foo.com/your_resourse_id?#{req.to_query}'

或者:

RestClient.delete 'http://foo.com/your_resourse_id?mov=' + @mid_D