Ruby Datamapper:在url路径中使用param检索记录返回null - 有时

时间:2014-12-08 04:23:35

标签: ruby sinatra datamapper ruby-datamapper

我正在使用Datamapper创建Sinatra应用程序。

通过以下路线,我试图打印id的记录。因此localhost:9292/api/1应返回id=1

的结果

里面

get '/api/:id' do

我尝试了几个不同结果的事情:

    thing = Thing.get(params[:id])
    thing.to_json
end

输出' null',但是:

    id_param = params[:id]
    id_param
end

按预期打印1,然后:

    hardcoded_thing = Thing.get(1)
    hardcoded_thing.to_json
end

正确打印id = 1的硬编码数据库记录。所以我一定要失去它..

有什么想法吗? 谢谢!


供参考,这是我的模特:

class Thing
    include DataMapper::Resource
    include BCrypt

    property :id, Serial, :key => true
    property :created_at, DateTime
    property :updated_at, DateTime
    property :name, String, :length => 50
    property :cafe_topic, Text
 end

1 个答案:

答案 0 :(得分:0)

试试这个:

get '/api/:id' do |id|
  thing = Thing.get(id)
  thing.to_json
end