我正在尝试使用 Emberjs 和 ember-data 将新记录发布到 Rails db;但是我收到以下错误:
TypeError {}“无法调用未定义的方法‘hasOwnProperty’”
我一直在关注https://github.com/dgeb/ember_data_example的示例,并尝试使用与示例相同的概念构建自己的应用程序。更不用说,我用过调试器;在我的控制器中,当我在控制台中点击this.get('preLoadedData')时,它设法将我的输入获取到表单中。但是,问题是我无法将用户输入发布到 Rails DB 中。
代码是:
店铺
DS.RESTAdapter.configure("plurals", {"company_category": "company_categories"});
App.Adapter = DS.RESTAdapter.extend({
bulkCommit: false
});
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.create()
});
模型
App.CompanyCategory = DS.Model.extend({
category: DS.attr("string")
});
控制器
App.CompanyCategoriesNewController = Em.ObjectController.extend({
startEditing: function() {
this.transaction = this.get('store').transaction();
this.set('model', this.transaction.createRecord(App.CompanyCategory, {}));
},
save: function() {
this.transaction.commit();
this.transaction = null;
}
});
导轨下控制器:-
def create
@category = CompanyCategory.new(params[:id])
respond_to do |format|
if @category.save
format.json { render json: @category, status: :created, location: @category }
else
format.json { render json: @category.errors, status: :unprocessable_entity}
end
end
end
路由器
App.CompanyCategoriesNewRoute = Em.Route.extend({
model: function() {
return null;
},
setupController: function(controller) {
this._super.apply(this,arguments);
controller.startEditing();
}
});
当我调用App.CompanyCategory.find();时我的 JSON 输出 是:
{
"company_categories":[
{"id":1,"category":"Financial Services"},
{"id":2,"category":"Trade Services"}
]
}
我可以知道我做错了什么吗?提前致谢!