我在使用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/