CouchDB:奇怪的query_parse_error与curl,而不是Ruby

时间:2012-06-20 22:22:58

标签: ruby couchdb sinatra couchrest

我正在iriscouch.com上托管我的Couch实例,并使用CouchRest模型使用简单的Sinatra应用程序进行一些测试。

这是我正在使用的简单模型:

class User < CouchRest::Model::Base
  property :first_name, String
  property :last_name, String
  timestamps!

  design do
    view :by_first_name
  end
end

我成功创建了新用户:

User.create(:first_name => "Stonewall", :last_name => "Jackson")

执行User.by_first_name.all会导致此HTTP请求:

http://test_admin:pwd@testytest.iriscouch.com:80/blt/_design/User/_view/by_first_name?include_docs=true&reduce=false
"Accept"=>"application/json"
"Accept-Encoding"=>"gzip, deflate"
"Content-Type"=>"application/json"

这是由RestClient通过CouchRest执行的。没问题。

但是,当我尝试curl此网址时,我收到Couch对include_docs参数的投诉:

{"error":"query_parse_error","reason":"Query parameter `include_docs` is invalid for reduce views."}

我想了解这里发生了什么。为什么include_docs仅在使用curl时出现问题?

1 个答案:

答案 0 :(得分:1)

一个区别是您的网址现在包含问号。如果您不保护shell中的URL,它将被解释为特殊字符。

如果您想要一种更简单的方法来测试服务,可以使用RESTClient代替curl