2011-11-13 5 views
0

私はレールとGoogleマップで簡単なものを試しています。私は緯度、経度、およびアイコンのいくつかの属性を持つマーカーモデルを持っています。私のアプリは標準的なRESTマーカーコントローラーにjsonをポストしています。私のブラウザから見て、JSONは次のようになります。rails 3.1が私のparamsハッシュの一部をラップするのはなぜですか?

(このIDは、フロントエンドでJavaScript MVCによって生成される)ログに

が、それはこのようになります

{"latitude":40.666700768608465,"longitude":-99.722078125,"icon":"http://localhost:3000/assets/4.png","id":"C4150EEB-D861-4B36-B69B-154C567F51CB"} 

Started POST "/markers" for 127.0.0.1 at 2011-11-12 23:41:25 -0700 
Processing by MarkersController#create as JSON 
Parameters: {"latitude"=>40.666700768608465, "longitude"=>-99.722078125, "icon"=>"http://localhost:3000/assets/4.png", "id"=>"C4150EEB-D861-4B36-B69B-154C567F51CB", "marker"=>{"id"=>"C4150EEB-D861-4B36-B69B-154C567F51CB", "icon"=>"http://localhost:3000/assets/4.png"}} 

私のコントローラでは、params[:marker]にアイコンとID(作成時/更新時に無視される)がありますが、経度と緯度は無視されます。なぜそれはいくつかの属性を入れ、他の属性を残してしまうのでしょうか?私はそれらをすべて持っているattr_accessible

答えて

1

フォームまたはJavaScriptが間違っています。座標はparams[:marker]ではなくparams[:latitude]params[:longitude]です。また、params[:icon]params[:id]params[:marker][:icon]params[:marker][:id]と同じですので、クライアント側のコードはちょっと混乱しているようです。

+0

私のクライアントサイドのJavaScriptが送信するべきものは何ですか?それは私にはうまく見えます。なぜレールが任意にそれをparamsハッシュに入れているのか分かりません。 – phaedryx

+0

@efedryx:私はRailsが問題だとは思わないが、クライアント側のコードが混乱しているように見える。 JSONは次のようになります: '{" marker ":{" latitude ":40.666700768608465、"経度 ":-99.722078125、" icon ":" http:// localhost:3000/assets/4.png "、" id ":" C4150EEB-D861-4B36-B69B-154C567F51CB "}}'。あなたのJavaScriptにはどのようにデータが組み込まれていますか? –

関連する問題