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