我试图在sinatra路线中做以下事情:
get '/posts/:id' do
Post.find(params[:id]).to_json
end
但是这会返回一个枚举器。
如何以json格式访问单个对象?
PS我正在使用datamapper
修改 的
我设法通过使用 get 而不是 find 来返回json值:
get '/posts/:id' do
Post.get(params[:id]).to_json
end
如果有人能解释为什么我会接受答案,以免浪费这个问题:)
答案 0 :(得分:0)
find
。它是Ruby的Enumerable方法,它返回一个枚举器对象;您正尝试将其转换为JSON。
DataMapper对象显然实现了Enumerable,这就是为什么你没有得到未定义的方法异常的原因。
可数#find:http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-find
答案 1 :(得分:0)
Find方法返回枚举数而不是条目。 如果您只期望一个条目:试试这个
Post.first(params[:id]).to_json