我正在使用 Ruby(客户端)和 Rails(服务器)编写一个简单的客户端服务器应用程序(仅使用 JSON API)。
尝试从客户端创建游戏时,我正在使用:
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({"tttgame" => {"name" => "Marius"}})
resp = http.request(request)
在服务器端(tttgames_controller.rb)我有:
# POST /tttgames
# POST /tttgames.json
def create
@tttgame = Tttgame.new(tttgame_params)
...
end
...
def tttgame_params
params.require(:tttgame).permit(:name)
end
服务器上的日志是:
Started POST "/tttgames.json" for 127.0.0.1 at 2013-10-05 12:58:44 +0300
Processing by TttgamesController#create as JSON
Parameters: {"tttgame"=>"{\"name\"=>\"Marius\"}"}
Completed 500 Internal Server Error in 0ms
NoMethodError (undefined method `stringify_keys' for "{\"name\"=>\"Marius\"}":String):
app/controllers/tttgames_controller.rb:33:in `create'
我怎样才能解决这个问题?互联网上的所有示例看起来都一样。谢谢!