Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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
Javascript Ember.js/Rails将关系发布到Rails_Javascript_Ruby On Rails_Json_Ember.js_Coffeescript - Fatal编程技术网

Javascript Ember.js/Rails将关系发布到Rails

Javascript Ember.js/Rails将关系发布到Rails,javascript,ruby-on-rails,json,ember.js,coffeescript,Javascript,Ruby On Rails,Json,Ember.js,Coffeescript,好的,我正在开发一个简单的Ember/Rails应用程序,我正在尝试在一个HTTP请求中发布一个hasMany关联。值得一提的是,我将Rails用于API 余烬:1.4.0-beta.1+canary.011b67b8 余烬数据:1.0.0-beta.5+金丝雀d9ce2a53 车把:1.1.1 jQuery:1.10.2 发布模式 App.Release = DS.Model.extend name: DS.attr 'string' tracks: DS.hasMany 'tra

好的,我正在开发一个简单的Ember/Rails应用程序,我正在尝试在一个HTTP请求中发布一个hasMany关联。值得一提的是,我将Rails用于API

  • 余烬:1.4.0-beta.1+canary.011b67b8

  • 余烬数据:1.0.0-beta.5+金丝雀d9ce2a53

  • 车把:1.1.1

  • jQuery:1.10.2

发布模式

App.Release = DS.Model.extend
  name: DS.attr 'string'
  tracks: DS.hasMany 'track', {embedded: 'true'}
一个“版本”有许多“曲目”

释放控制器

App.ReleasesNewController = Ember.ObjectController.extend

  actions:{
    save: ->
      @content.save()
  }

如何一次发布两首曲目和一个版本?我计划在我的Rails API中使用接受\u嵌套的\u属性\u:tracks。。。但是如果我能在我的开发控制台中看到这些轨迹,我会很高兴的。

embedded'在ember data 1 beta中不再受支持。 检查此链接以了解如何使用嵌入创建子记录。更好地使用

检查此问题以了解有关以不同和更好的方式创建子记录的更多信息

我是这样工作的:

App.ReleaseSerializer = DS.RESTSerializer.extend

  serializeHasMany: (record, json, relationship)->  
    key = relationship.key
    hasManyRecords = Ember.get(record, key)

    key = key+'_attributes'

    if hasManyRecords && relationship.options.embedded == 'true'
      json[key] = []
      hasManyRecords.forEach (item, index)->
        json[key].push(item.serialize())
    else
      @._super(record, json, relationship)
这可以很好地与配合使用:在Rails中为接受\u嵌套的\u属性。Rails希望在发行版下嵌套一组轨道模型,作为轨道\u属性

两个哥查斯:

  • Rails不会对子模型使用创建操作,您必须在父模型的创建操作中对子模型执行任何操作

  • 记住将Rails 4的孩子的参数列为白名单。这看起来像:

      def release_params
          params.require(:release).permit(:name, tracks_attributes: [:name])
      end
    
Thank Trajan的可能副本-但“extractSingle”用于从服务器检索时提取记录。我正在尝试序列化hasMany关系以上载到Rails。我破解了它-见下面我的答案。
  def release_params
      params.require(:release).permit(:name, tracks_attributes: [:name])
  end