Mam problem z próbą zapisania wielu lub wielu relacji w Ember.js przy użyciu danych ember i szyn. Stowarzyszenie działa dobrze po stronie emberów, jednak kiedy próbuję dokonać transakcji, nie będzie zawierać listy nowych powiązań podczas przesyłania do szyn. Każda pomoc byłaby bardzo cenna, wyrywałem włosy próbując znaleźć przykładową aplikację, która robi coś tak prostego na githubie, ale nie mogę tego znaleźć.Wiele do wielu relacji z Ember, danymi ember i szynami
Oto dumbed dół wersja mojego kodu Ember: forma
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'
Edit:
each user in users_list
label.checkbox
view view.userCheckbox rosterBinding="current_roster" userBinding="user" | #{user.full_name}
Szyny Backend (Korzystanie dziedziczone Zasoby i aktywnego modelu klejnoty 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
Tak jak powiedziałem, stowarzyszenie działa dobrze na Ember, ale szyny nie wydają się być nowe dane skojarzeń. Kiedy sprawdzę kartę XHR w inspektorze sieciowym, widzę, że wysłano tylko:
Żądaj ładowności {"lista": {"created_at": "Czw, 21 marca 2013 23:16:02 GMT", "team_id": "1"}}
Zostałem zwrócony z błędem 204 brak zawartości, ponieważ nic się nie zmieniło.
bardzo zwięzłe i łatwe do naśladowania odpowiedź, dziękuję za pomoc! – McPants