2013-06-27 37 views
17

tôi có các mô hình sau:sự bền bỉ phụ huynh và kỷ lục nhúng trong ember dữ liệu

App.Company = DS.Model.extend({ 
    name: DS.attr('string'), 
    accounts: DS.hasMany('App.Account', { 
    inverse: 'company' 
    }) 
}); 

App.Account = DS.Model.extend({ 
    login:     DS.attr('string'), 
    first_name:   DS.attr('string'), 
    last_name:    DS.attr('string'), 
    email:     DS.attr('string'), 
    password:    DS.attr('string'), 
    password_confirmation: DS.attr('string'), 
    company:    DS.belongsTo('App.Company') 
}); 

Công ty được định nghĩa là được nhúng trong tài khoản:

DS.RESTAdapter.map('App.Account', { 
    company: { embedded: 'always' } 
}); 

Khi tôi tạo một tài khoản mới, dữ liệu công ty được nhúng chính xác trong dữ liệu tài khoản và tôi thấy yêu cầu POST mà tôi mong đợi ở phía máy chủ:

Started POST "/accounts" for 127.0.0.1 at 2013-06-27 13:30:53 +0200 
Processing by AdminUsersController#create as JSON 
    Parameters: {"account"=>{"login"=>"fsdfdf", "first_name"=>"fgdfgh", "last_name"=>"[email protected]", "email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "company"=>{"name"=>"gfdhgtrhzrh"}}} 

Tuy nhiên, tôi cũng đang nhìn thấy một yêu cầu POST bổ sung cho bản thân công ty:

Started POST "/companies" for 127.0.0.1 at 2013-06-27 13:30:53 +0200 
Processing by CompaniesController#create as JSON 
    Parameters: {"company"=>{"name"=>"gfdhgtrhzrh"}} 

Tôi đang thiết lập các mô hình như sau:

this.transaction = this.get('store').transaction(); 
var account = this.transaction.createRecord(App.Account, {}); 
account.set('company', this.transaction.createRecord(App.Company, {})); 

Khi người dùng nhấp tiết kiệm, tôi chỉ đơn giản là cam kết giao dịch:

this.transaction.commit(); 

Đó có phải là lỗi hoặc tôi đang làm điều gì đó sai? Đã dành khá nhiều thời gian cho điều đó rồi ...

Cảm ơn bạn đã trợ giúp!

+0

Tôi đã sửa nó bằng cách thay đổi cấu hình nhúng thành DS.RESTAdapter.map ('App.Account', {company: {embedded: 'load'}}); Không chắc chắn lý do tại sao mà các công trình thực sự ... – marcoow

+0

Tôi nghĩ rằng đây là một vớiToTo như hasMany cư xử như mong đợi. Với nhiều (thậm chí không có con), bạn thực sự sử dụng mối quan hệ để tạo ra một bản ghi con, nhưng với attributeTo là mối quan hệ là null, do đó bạn không thể tạo nó với this.get ('company'). CreateRecord –

+0

Tôi đã tạo ra một pull yêu cầu mà tôi nghĩ rằng sửa chữa nó - Tôi không thấy lý do tại sao nó không nên làm việc linh sam thuộc về cũng như nó cho hasMany: https://github.com/emberjs/data/pull/1067 – marcoow

Trả lời

0

Theo như tôi nhớ không bao giờ thực sự được hỗ trợ trong phiên bản cũ (cũ) của dữ liệu Ember tôi đã sử dụng lúc đó. Phiên bản mới hơn xử lý trường hợp đó một cách khác nhau anyway vì vậy tôi muốn nói điều này là lỗi thời và đóng nó.

0

this.transaction.createRecord(App.Company, {})

Đoạn mã tạo ra thực thể công ty riêng biệt. Nó thực sự là một bất ngờ có một hành động đăng bài cho nó?

Các vấn đề liên quan