ember.js - 如何创建与 Ember.js 和 Rails 关联的belongsTo 记录?

标签 ember.js ember-data

我在使用belongsTo 关联和使用Ember.js 和ember-data 向我的Rails Controller 发送外键时遇到了问题。我的 Ember.js Controller 会将项目名称发送到 Rails Controller ,但不会发送 client_id 值。在 Rails Controller 中,params[:project][:client_id] 为 nil。

帮助!我哪里错了?

型号:

DA.Project = DS.Model.extend
  name: DS.attr('string')
  client: DS.belongsTo('DA.Client')

DA.Client = DS.Model.extend
  name: DS.attr('string')
  projects: DS.hasMany('DA.Project')

Controller :
DA.ProjectsController = Em.ArrayController.extend  
  createProject: (project) ->
    @transaction = DA.store.transaction()
    p = @transaction.createRecord(DA.Project, project)
    validation_errors = p.validate()

    if validation_errors
      DA.displayError validation_errors
    else
      @transaction.commit()

查看:
DA.ProjectsNew = Em.View.extend
  tagName: 'form'
  templateName: 'projects/new'

  init: ->
    @_super()

  didInsertElement: ->
    @_super()

  submit: (event) ->
    event.preventDefault()
    project = {}
    project.name = @get('name')
    project.client = @get('client_id')

    DA.ProjectsController.createProject(project)

模板:
{{view Em.TextField valueBinding="view.name" placeholder="Project Name" tabindex="1"}}
{{view Em.TextField valueBinding="view.client_id" placeholder="Client ID" tabindex="2"}}
<button type="submit">Create</button>

最佳答案

submit功能,project.client被分配了一个 id 而不是 DA.Client实例。
如果DA.Client实例应该预先存在,您可以通过 DA.store.find(DA.Client, @get('client_id')) 获得它.

关于ember.js - 如何创建与 Ember.js 和 Rails 关联的belongsTo 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022421/

相关文章:

ember.js - 访问在 {{#each}} 迭代器中创建的 subview 的属性

javascript - 引用错误: parameters is not defined in Ember. js

unit-testing - 用于单元测试的 EmberJS 服务注入(inject) (Ember QUnit)

javascript - 嵌套 promise 并在 route 返回它们不会更新路线模型和使用该模型的模板

javascript - Ember.js 从应用程序 Controller 更新模型

javascript - 关闭操作的 Ember 集成测试

javascript - 使用转义键取消 Ember TextView 中的操作

javascript - Ember.js REST 适配器使用 JSON 根(使用 ember-data)

ember.js - 如何处理路由中Ember数据的404?

ember.js - 具有动态分段的资源并在嵌套路由中检索模型