Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当我在余烬数据中的(有多个)模型中创建或更新(属于)模型和自动同步更新列时_Ruby On Rails_Ember.js_Ember Data_Reload - Fatal编程技术网

Ruby on rails 当我在余烬数据中的(有多个)模型中创建或更新(属于)模型和自动同步更新列时

Ruby on rails 当我在余烬数据中的(有多个)模型中创建或更新(属于)模型和自动同步更新列时,ruby-on-rails,ember.js,ember-data,reload,Ruby On Rails,Ember.js,Ember Data,Reload,我的模型是这样的: DEBUG: ------------------------------- DEBUG: Ember : 1.2.0 DEBUG: Ember Data : 1.0.0-beta.4 DEBUG: Handlebars : 1.1.2 DEBUG: jQuery : 1.10.2 DEBUG: ------------------------------- App.OrderRoute = Em.Route.extend model:

我的模型是这样的:

DEBUG: ------------------------------- 
DEBUG: Ember      : 1.2.0 
DEBUG: Ember Data : 1.0.0-beta.4 
DEBUG: Handlebars : 1.1.2 
DEBUG: jQuery     : 1.10.2 
DEBUG: ------------------------------- 
App.OrderRoute = Em.Route.extend

  model: (params)->
    @store.find 'order', params.order_id
订单显示路线:

App.Order = DS.Model.extend
  lists: DS.hasMany('list', async: true)
  total: DS.attr 'number'


App.List = DS.Model.extend
  order: DS.belongsTo 'order'
  price: DS.attr 'number'
  number: DS.attr 'number'
  totalPrice: DS.attr 'number'
当我创建如下列表时,我可以在订单显示页面中创建和更新列表:

DEBUG: ------------------------------- 
DEBUG: Ember      : 1.2.0 
DEBUG: Ember Data : 1.0.0-beta.4 
DEBUG: Handlebars : 1.1.2 
DEBUG: jQuery     : 1.10.2 
DEBUG: ------------------------------- 
App.OrderRoute = Em.Route.extend

  model: (params)->
    @store.find 'order', params.order_id
totalPrice是
price
*
number
但它在服务器中计算,因此create将从服务器返回
totalPrice

但是
Order
total
加上所有
List
totalPrice
,所以当我创建
List
时,我的服务器将更新
Order
total
,但我的web端看不到任何更新的内容。我必须刷新页面才能看到
total
更新

所以,我的第一个问题是:

new_list = @store.createRecord('list', {"price": 5, "number": 1})
  new_list.save().then (model) =>
    @content.get('lists').pushObject model
  editList: ->
    @content.set('price', @get('price'))
    @content.set('number', @get('number'))
    @content.save().then( (list)=>
      return list
    , ()->
      alert 'Wrong!'
    )
然后当我更新列表时,我创建了什么,代码如下:

DEBUG: ------------------------------- 
DEBUG: Ember      : 1.2.0 
DEBUG: Ember Data : 1.0.0-beta.4 
DEBUG: Handlebars : 1.1.2 
DEBUG: jQuery     : 1.10.2 
DEBUG: ------------------------------- 
App.OrderRoute = Em.Route.extend

  model: (params)->
    @store.find 'order', params.order_id
订单显示模板

  How can use ember data to reload the Order total when the List is created?
更新
列表时,服务器中不会返回任何内容,我的问题是:

new_list = @store.createRecord('list', {"price": 5, "number": 1})
  new_list.save().then (model) =>
    @content.get('lists').pushObject model
  editList: ->
    @content.set('price', @get('price'))
    @content.set('number', @get('number'))
    @content.save().then( (list)=>
      return list
    , ()->
      alert 'Wrong!'
    )
我认为所有问题都可以使用
ember数据
reload()
或使用
ember
观察
,但我不知道如何使用它们才是最好的方法。还是有一个方便的方法来解决问题


提前感谢。

我建议您尝试使用计算属性。这可能会解决这个问题


我想在服务器中计算。如何在这两个模型中使用计算属性?