codebrew / backbone-rails

Easily use backbone.js with rails 3.1
MIT License
1.61k stars 255 forks source link

Guidance on Nested Models #79

Closed dgdosen closed 12 years ago

dgdosen commented 12 years ago

Hi all;

I'm using backbone-rails in a nested model example (say I have a collection of Activities, and each can have a collection of Pomodori)

I work with that app on a single page. I can load and create a series of nested views to display the data I want, but now I'm stuck when trying to perform CRUD operations on that data.

For example - say I change an attribute on my outer object, and send that data to the server. Here's what that json looks like (look at pomodori_attributes): {"activity"=>{"name"=>"testupdate", "user_id"=>1, "id"=>3, "pomodori"=>[{"activity_id"=>3, "break_length"=>4, "completed"=>false, "id"=>12, "length"=>25, "location_id"=>nil, "note"=>"test444", "start_date_time"=>"2011-12-15T00:00:00Z"}], "pomodori_attributes"=>[{"start_date_time"=>"2011-12-15T00:00:00Z", "completed"=>false, "note"=>"test444", "break_length"=>4, "activity_id"=>3, "id"=>12, "length"=>25, "location_id"=>nil}]}, "user_id"=>"1", "id"=>"3"} art_date_time"=>"2011-12-15T00:00:00Z"}]}, "user_id"=>"1", "id"=>"3"}

what the server wants, is a hash of nested objects (although there's only one in this example (look at pomodori_attributes): {"utf8"=>"✓", "authenticity_token"=>"iv9wYvgqLt3nldVOX4AeAifpFaSHIfEj85MsPUaMiAw=", "activity"=>{"name"=>"test", "pomodori_attributes"=>{"0"=>{"_destroy"=>"", "start_date_time"=>"2011-12-15 00:00:00", "length"=>"25", "completed"=>"0", "note"=>"test444", "break_length"=>"4", "id"=>"12"}}}, "commit"=>"Update Activity", "user_id"=>"1", "id"=>"3"} "location_id"=>nil, "note"=>"test", "start_date_time"=>"2011-12-15T00:00:00Z"}]}, "user_id"=>"1", "id"=>"3"}

any guidance on how to get my json, on an update, to look like it should for the server to accept it?

Thanks for any help. \

dgdosen commented 12 years ago

FYI - this wasn't an issue specific to backbone-rails - this was more an issue with how I created a nested model, and was outside the scope of this gem