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'
どうすればこれを修正できますか? インターネットからのすべての例は同じように見えます。ありがとう!