0

私はシナトラルートで次のことをしようとしています:

get '/posts/:id' do
  Post.find(params[:id]).to_json
end

しかし、これは列挙子を返しています。

json 形式の単一のオブジェクトにアクセスするにはどうすればよいですか?

PS私はデータマッパーを使用しています

編集

findの代わりにgetを使用して、json 値を返すことができました。

get '/posts/:id' do
  Post.get(params[:id]).to_json
end

質問を無駄にしないように、誰かが私が答えを受け入れる理由を説明できれば:)

4

2 に答える 2

0

findDataMapperには存在しません。これはRubyのEnumerableのメソッドであり、列挙子オブジェクトを返します。これをJSONに変換しようとしています。

DataMapperオブジェクトは明らかにEnumerableを実装しているため、未定義のメソッド例外は発生しません。

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

于 2012-06-10T13:32:56.457 に答える
0

Find メソッドは、エントリではなく列挙子を返します。エントリが 1 つしかない場合: これを試してください

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