ember-data 및 레일을 사용하여 Ember.js에서 다 대 다 관계를 저장하는 데 문제가 있습니다. 협회는 사물의 엠버 사이드에서 잘 작동하지만, 거래를 저지하려고 할 때 레일에 제출할 때 새로운 협회 목록을 포함하지 않을 것입니다. 어떤 도움이라도 대단히 감사 할 것입니다. 저는 제 머리를 찢어서 github에서 간단한 것을하는 예제 응용 프로그램을 찾으려고했지만, 찾을 수없는 것 같습니다.Ember, ember-data 및 Rails와의 다 대다 관계
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}
레일 백엔드 (상속 자원 및 Active 모델 시리얼 보석 사용) :
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 탭을 확인하면 다음과 같이 보냈습니다.
페이로드 요청 { "created_at": "Thu, 21 Mar 2013 23:16:02 GMT", "team_id": "1"}}
아무것도 변경되지 않았으므로 204 내용 없음 오류가 표시됩니다.
응답을 따를 매우 간결하고 쉽게, 당신의 도움을 주셔서 감사 사용자 ID의 배열을 보내는 것입니다! – McPants