Emberjs と ember-data を使用して Rails db に新しいレコードを POST しようとしています。ただし、次のエラーが発生します。
TypeError {} 「未定義のメソッド 'hasOwnProperty' を呼び出せません」
https://github.com/dgeb/ember_data_exampleの例に従っており、例と同じ概念を使用して独自のアプリを構築しようとしました。言うまでもなく、私はデバッガーを使用しました。コントローラー内で、コンソールでthis.get('preLoadedData')を押すと、入力をフォームに取得できます。ただし、問題は、ユーザー入力を Rails DB に POST できないことです。
コードは次のとおりです。
店
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"}
]
}
私が何を間違っていたのかを知ることができますか?前もって感謝します!