0

我正在尝试在 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

如果有人可以解释为什么我会接受答案,以免浪费问题:)

4

2 回答 2

0

findDataMapper 中不存在。它是 Ruby 的 Enumerable 的一个方法,它返回一个枚举器对象;您正在尝试将其转换为 JSON。

DataMapper 对象显然实现了 Enumerable,这就是为什么您不会得到未定义的方法异常的原因。

枚举#find:http ://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-find

于 2012-06-10T13:32:56.457 回答
0

Find 方法返回一个枚举器而不是条目。如果您只期望一个条目:试试这个

Post.first(params[:id]).to_json
于 2014-05-28T16:01:28.703 回答