2012-06-10 2 views
0

Я пытаюсь сделать следующее в Синатра маршруту:Синатра маршрут возвращения нумератор вместо JSon объекта

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

Но это возвращается перечислитель.

Как получить доступ к одному объекту в формате json?

PS Я использую DataMapper

EDIT

мне удалось вернуть значение JSon с помощью получить вместо найти:

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

Если кто-то может объяснить, почему я буду принимать ответ, чтобы не путать вопрос :)

ответ

0

find не существует в DataMapper. Это метод Ruby's Enumerable, который возвращает объект перечисления; который вы пытаетесь преобразовать в JSON.

Объекты DataMapper, по-видимому, реализуют Enumerable, поэтому вы не получаете неопределенный метод. исключение.

перечислимых # находка: http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-find

+0

Я привык использовать .find с ActiveRecord так спасибо за очищая его – Darcbar

0

метод Find вернуть Перечислитель не запись. Если вы ожидаете, только одна запись: попробуйте это

Post.first(params[:id]).to_json 

 Смежные вопросы

  • Нет связанных вопросов^_^