1

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'

何が問題なのですか?どうすれば修正できますか?

4

0 に答える 0