Wiele do wielu relacji z Ember, ember-data i Rails

Mam problem z próbą zapisania wielu do wielu relacji w Ember.js przy użyciu ember-data i rails. Stowarzyszenie działa dobrze po emberowej stronie, jednak kiedy próbuję zatwierdzić transakcję, nie będzie zawierać listy nowych skojarzeń podczas przesyłania do szyn. Jakakolwiek pomoc byłaby bardzo mile widziana, wyrywałem sobie włosy próbując znaleźć przykładową aplikację, która robi coś tak prostego na githubie, ale nie mogę jej znaleźć.

Oto przytłumiona wersja mojego kodu Embera:

App.Store = DS.Store.extend
  revision: 11
  adapter: DS.RESTAdapter.create
    url: '/api'

App.Router.map ->
  @resource 'rosters'
  @resource 'users'

App.User = DS.Model.extend
  rosters: DS.hasMany 'App.Roster'

App.Roster = DS.Model.extend
  users: DS.hasMany 'App.User'

App.RostersEditRoute = Ember.Route.extend
  setupController: (controller, model) ->
    controller.set 'users_list', App.User.find()

App.RostersEditView = Ember.View.extend
  userCheckbox: Em.Checkbox.extend
    checkedObserver: ( ->
      users = @get 'roster.users'
      if @get 'checked'
        users.addObject @get 'user'
      else
        users.removeObject @get 'user'
      @get('controller.store').commit()
    ).observes 'checked'

Edytuj formularz:

each user in users_list
  label.checkbox
    view view.userCheckbox rosterBinding="current_roster" userBinding="user" | #{user.full_name}

Backend Szyn (użycie dziedziczonych zasobów i klejnotów Serializatora aktywnego modelu):

class User < ActiveRecord::Base
  has_many :rosters_users
  has_many :rosters, through: :rosters_users
  accepts_nested_attributes_for :rosters
end

class RostersUser < ActiveRecord::Base
  belongs_to :user
  belongs_to :roster
end

class Roster < ActiveRecord::Base
  has_many :rosters_users
  has_many :users, through: :rosters_users
  accepts_nested_attributes_for :users
end

module Api
  class RostersController < BaseController
  end
end

module Api
  class UsersController < BaseController
  end
end

module Api
  class BaseController < ActionController::Base
    inherit_resources

    respond_to :json
    before_filter :default_json

    protected

    # Force JSON
    def default_json
      request.format = :json if params[:format].nil?
    end
  end
end

class UserSerializer < BaseSerializer
  has_many :rosters, embed: :ids
end

class RosterSerializer < BaseSerializer
  has_many :users, embed: :ids
end

Tak jak powiedziałem, skojarzenie działa dobrze na Ember, ale wydaje się, że szyny nie pobierają nowych danych stowarzyszenia. Kiedy sprawdzam kartę XHR w inspektorze internetowym, widzę, że wysłał to tylko:

Request Payload {"roster": {"created_at": "Thu, 21 Mar 2013 23:16:02 GMT", "team_id": "1"}}

I wróciłem z 204 brakiem błędu treści, ponieważ nic się nie zmieniło.

questionAnswers(2)

yourAnswerToTheQuestion