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()

因此,有一个请求发送到我的 rails 应用程序:

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,并将其与您的 News Controller 进行比较。

于 2012-11-02T01:06:43.513 回答
0

I found the solution. First, "new" seems to be a reserved word. Secondly, I must to add the right attr_accessible in my models.

Thanks!

于 2012-11-03T22:36:13.150 回答