【发布时间】:2016-02-12 17:05:02
【问题描述】:
我正在尝试使用 ember.js 作为前端在我的 rails 后端创建资源。
在router.js我有这个:
//...
this.route('posts', function() {
this.route('new');
});
//...
这是app/templates/posts/new.hbs
<div>
<label>Title</label>
{{input type="text" value=model.title}}
</div>
<div>
<label>Body</label>
{{input type="text" value=model.body}}
</div>
<div>
<button {{action "save"}}>Save</button>
<button {{action "cancel"}}>Cancel</button>
</div>
app/routes/posts/new.js 看起来像这样:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return {};
},
actions: {
save() {
var newPost = this.get('store').createRecord('post', this.currentModel);
newPost.save().then((post) => {
this.transitionTo('post', post);
});
},
cancel() {
this.transitionTo('posts');
}
}
});
这是post 型号:
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
body: DS.attr('string'),
comments: DS.hasMany('comment')
});
当我单击表单上的save 按钮时,我在控制台上收到此错误:
POST http://localhost:4200/posts 400 (Bad Request)
进一步检查rails服务器端的错误,我发现这个错误:
ActionController::ParameterMissing (param is missing or the value is empty: post):
我不知道为什么表单中的参数没有随 POST 请求一起发送,我做错了什么?
【问题讨论】:
标签: javascript ruby-on-rails ember.js ember-data