【发布时间】:2014-05-06 17:25:00
【问题描述】:
我已经搜索了很多这个问题的答案,我觉得我很接近......
我有测验、问题和答案模型。
导轨--
测验有_许多问题
问题有_很多答案
余烬--
Quizzmob.Quiz = DS.Model.extend
title: DS.attr('string')
questions: DS.hasMany('question')
Quizzmob.Question = DS.Model.extend
prompt: DS.attr('string')
quiz: DS.belongsTo('quiz')
我可以通过一个简单的 save() 将一个新测验保存到我的 Rails 后端。 我还侧载了 JSON,所以它看起来像这样:
{"questions":[
{"id":214,"prompt":"Is this a question?"} //--added manually--//
],
"quizzes":[{"id":185,"title":"First Quiz","questions":[214]},
{"id":186,"title":"Second Quiz","questions":[]},
{"id":187,"title":"Third Quiz","questions":[]},
...
...
]}
这是我在寻找答案时多次看到的模式:
Ember QuestionsNewController:
Quizzmob.QuestionsNewController = Ember.ArrayController.extend(
needs: 'quiz'
quiz: Ember.computed.alias('controllers.quiz.model')
prompt: ''
actions:
save: ->
quiz = @get('controllers.quiz.content')
quiz.save()
prompt = @get('prompt')
question = @store.createRecord "question",
prompt: prompt
@set('prompt', '')
questions = quiz.get('questions')
questions.addObject(question)
question.save().then =>
quiz.save()
)
我的控制台显示所有成功的调用,我的服务器也显示成功:
Processing by Api::V1::QuestionsController#create as JSON
Parameters: {"question"=>{"prompt"=>"new", "quiz_id"=>"185"}}
Completed 200 OK
Processing by Api::V1::QuizzesController#update as JSON
Parameters: {"quiz"=>{"title"=>"First Quiz"}, "id"=>"185"}
Completed 200 OK
创建了一个新的问题模型,我在 Ember 调试器中看到了它,但是当我刷新页面时,模型消失了。我在某处读到它可能与我的序列化程序有关,并且我可能必须添加一个“serializeHasMany”方法来自定义它……但这对于看似简单和常见的任务来说似乎需要做很多工作。不确定这是否是“余烬之道”。
非常感谢您的帮助。我将使用所需的任何其他信息更新问题。
【问题讨论】:
标签: ruby-on-rails-4 ember.js ember-data