5

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"}
   ]
}

私が何を間違っていたのかを知ることができますか?前もって感謝します!

4

1 に答える 1