0

単純なバックボーンのアプリケーションでは、次のモデルがあります。

class Rcbvm2.Models.Item extends Backbone.Model
  initialize: (modelName) ->
    @modelName = modelName
    @paramRoot = @modelName
    @urlRoot = "http://localhost:3000/#{@modelName}"

これを試すと:

item = new Rcbvm2.Models.Item('pages')
item.set('body', 'test')
item.id = 2
item.save()

だから、これで私のレールアプリケーションに送信されるリクエストがあります:

Started PUT "/pages/2" for 127.0.0.1 at 2012-11-01 19:39:40 -0400
Processing by PagesController#update as JSON
  Parameters: {"pages"=>{"silent"=>true}, "body"=>"test", "id"=>"2", "page"=>{"body"=>"test"}}

わかりました、それは動作します。私の問題は、私がこれを行うときです:

item = new Rcbvm2.Models.Item('news') //change the model's name
item.set('body', 'test')
item.id = 2
item.save()

私はこれを持っています:

Started PUT "/news/2" for 127.0.0.1 at 2012-11-01 19:40:04 -0400
Processing by NewsController#update as JSON
  Parameters: {"news"=>{"silent"=>true}, "body"=>"test1", "id"=>"2"}

ご覧のとおり、ハッシュ「new」に「body」があります。

編集1

ページにはこれ"page"=>{"body"=>"test"}がありますが、ニュースには何もありません...

編集終了 1

私のRailsアプリケーションには存在しないモデル「ユーザー」も試してみましたが、ニュースと同じだと思います。

わからない。アイデアはありますか?

編集 2

これは私のルートです:

resources :pages
resources :news

両方とも同じこと。

4

2 に答える 2

0

私はすべてが正しいと思います、問題はあなたがあなたのニュースコントローラーで正しいJSONを返さなければならないということです。Pages Controllerを見て、NewsControllerと比較します。

于 2012-11-02T01:06:43.513 に答える
0

解決策を見つけました。まず、「new」は予約語のようです。次に、モデルに適切な attr_accessible を追加する必要があります。

ありがとう!

于 2012-11-03T22:36:13.150 に答える