在一个简单的骨干应用程序中,我有这个模型:
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
两者都一样。
答案 0 :(得分:0)
我认为一切都是正确的,问题是您必须在新闻控制器中返回正确的JSON。查看您的Pages Controller,并将其与您的新闻控制器进行比较。
答案 1 :(得分:0)
我找到了解决方案。首先,“新”似乎是一个保守的词。其次,我必须在我的模型中添加正确的attr_accessible。
谢谢!