我有一个带有此路线的Sinatra应用程序,该应用程序由Android应用程序请求并返回一些带有连接信息的Json。
post '/getConnection' do
content_type :json
#session and tokens
session_id = 123
agent_token = 456
user_token = 789
#Create new room based on session and store
newRoom = Room.new
newRoom.attributes = {:sessionID => session_id,
:agentToken => agent_token,
:userToken => user_token}
newRoom.save
#Json
{:con =>[:session =>session_id,:token =>user_token]}.to_json
end
没有新的房间创建和数据库存储(顺便使用Datamapper),一切正常。但是当我添加它时,甚至包含代码的函数都会混淆响应。
这是房间模型:
class Room
include DataMapper::Resource
property :id, Serial
property :sessionID, String
property :agentToken, String
property :userToken, String
end
DataMapper.finalize
DataMapper.auto_upgrade!
有没有办法实现回调函数或者什么东西会返回Json并存储信息而不会搞乱发送的Json?
答案 0 :(得分:0)
我已经解决了这个问题。
问题在于我的app.rb文件中不需要和配置DataMapper。我最终得到了:
require 'data_mapper'
DataMapper.setup(:default, 'postgres://database-uri')
post '/getConnection' do
content_type :json
#session and tokens
session_id = 123
agent_token = 456
user_token = 789
#Create new room based on session and store
Room.create(
:sessionID => session_id,
:agentToken => agent_token,
:userToken => user_token
)
#Json
{:con =>[:session =>session_id,:token =>user_token]}.to_json
end