Отношения многие ко многим с Ember, ember-data и Rails
У меня возникла проблема с попыткой сохранить много-много связей в Ember.js, используя ember-data и rails. Ассоциация отлично работает на угасшей стороне вещей, однако, когда я пытаюсь зафиксировать транзакцию, она не будет включать в себя список новых ассоциаций при отправке в rails. Любая помощь будет высоко ценится, яя рвал на себе волосы, пытаясь найти пример приложения, которое делает что-то такое простое на github, но я могуКажется, не найти один.
Вот глупая версия моего кода Ember:
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'
Редактировать форму:
each user in users_list
label.checkbox
view view.userCheckbox rosterBinding="current_roster" userBinding="user" | #{user.full_name}
Rails Backend (Использование унаследованных ресурсов и драгоценных камней Active Model Serializer):
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
Как я уже сказал, ассоциация отлично работает на Ember, но рельсы неКажется, я получаю новые данные ассоциации. Когда я проверяю вкладку XHR в веб-инспекторе, я вижу, что она отправляет только это:
Запросить полезную нагрузку {"список»: {»создан в":"Чт, 21 марта 2013 23:16:02 GMT ","team_id ":" 1"}}
И я вернулся с ошибкой 204 без содержимого, потому что ничего не изменилось.