Railsコントローラーを介してJSONデータをサーバーに投稿しようとしています。私のajaxは
$.ajax( {
url: "http://localhost:3000/widget_denemes/getUserInfo",
data: {userInfo: {mainURL:document.location.href}},
dataType: 'json',
type: 'POST',
success: function(data) {
alert("Successful");
},
error: function() {
alert("Unsuccessful");
}
});
私のコントローラーは
def getUserInfo
data = ActiveSupport::JSON::decode(params[:userInfo])
format.json {head :ok}
end
また、私のルートは
post 'widget_denemes/getUserInfo' => 'widget_denemes#getUserInfo'
しかし、サーバーを実行すると、端末でこの問題が発生します
Started POST "/widget_denemes/getUserInfo" for 127.0.0.1 at 2012-05-15 11:34:20 +0300
Processing by WidgetDenemesController#getUserInfo as HTML
Parameters: {"userInfo"=>{"mainURL"=>"file://localhost/Users/ender/Desktop/widgetTest.html"}}
Completed 500 Internal Server Error in 0ms
TypeError (can't convert ActiveSupport::HashWithIndifferentAccess into String):
app/controllers/widget_denemes_controller.rb:36:in `getUserInfo'
何が問題なのですか?どうすれば修正できますか?