【发布时间】:2014-01-01 22:56:28
【问题描述】:
我有一个 File 和一个 Tag 模型,它们是多对多的关系:
App.File = DS.Model.extend
name: DS.attr('string')
tags: DS.hasMany('tag')
App.Tag = DS.Model.extend
name: DS.attr('string')
files: DS.hasMany('file')
我正在读取通过 Rails 后端生成的 JSON 数据,到目前为止一切正常。我正在尝试在我的 Ember 路由中编写一个 tagFile 函数,该函数使用特定标签标记文件。这在 ember 端可以正常工作,但它当然不会持续存在,而且我不知道如何将正确的 HTTP 请求发送到 Rails 后端。所以我有
App.FilesRoute = Ember.Route.extend
...
actions:
tagFile: (file, tag) ->
file.get('tags').pushObject(tag)
tag.get('files').pushObject(file)
# file.save() ? or something similar?
我试过file.save(),它发送一个PUT请求,但是在Rails中发送的params哈希根本不包括Tag记录。我在 ember-data 内部的 updateRecord() 方法中设置了一个断点,并在通过 AJAX 发送之前检查了 data 变量,并且该变量也不包括 Tag 记录。
发送 HTTP 请求(PUT 或其他)的正确方法是什么,我可以将我的子记录传递到 params 哈希中?有没有办法使用 ember-data 方法传递任意数据?我可以编写自己的 AJAX 调用,但似乎我没有利用 ember-data。有什么见解吗?
使用:Ruby 2/Rails 4 后端,Ember 1.3.0-beta.1+canary.48513b24,Ember-data 1.0.0-beta.4+canary.c15b8f80
【问题讨论】:
标签: ember.js ruby-on-rails-4 many-to-many ember-data