发送的参数在骨干模型中并不相同

时间:2012-11-01 23:51:49

标签: ruby-on-rails backbone.js

在一个简单的骨干应用程序中,我有这个模型:

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

我也尝试使用模型“users”,这是我的rails应用程序中不存在的模型,它与新闻相同。

我不明白。你有什么想法吗?

修改2

这是我的路线:

resources :pages
resources :news

两者都一样。

2 个答案:

答案 0 :(得分:0)

我认为一切都是正确的,问题是您必须在新闻控制器中返回正确的JSON。查看您的Pages Controller,并将其与您的新闻控制器进行比较。

答案 1 :(得分:0)

我找到了解决方案。首先,“新”似乎是一个保守的词。其次,我必须在我的模型中添加正确的attr_accessible。

谢谢!