我有一些实体名为'组'和控制器的一些basick CRUD行动。我面临的问题是,当我试图更新(编辑)这个实体时,它不会被更新。我只是用update_attributes此:Rails,实体不更新
def update
group = Group.find(params[:id])
group.update_attributes! params[:group]
render :json => group.to_json()
end
这里是我的WEBrick控制台中看到:
Started PUT "/groups/264.json?$$hashKey=00J&_method=PUT&group_id=null&item_sufix=null&key=null&name=ddddddddd&subgroups=" for 127.0.0.1 at 2013-02-25 00:32:03 +0200
Processing by GroupsController#update as JSON
Parameters: {"$$hashKey"=>"00J", "group_id"=>"null", "item_sufix"=>"null", "key"=>"null", "name"=>"ddddddddd", "subgroups"=>"", "id"=>"264", "group"=>{}}
我想的问题是,为什么有些PARAMS [:组]自带空。但为什么会发生这种情况,因为我们可以看到所有必需的字段(在这种情况下是名称)都带有请求?在组模式我有attr_accessible :name
至于路线(实际上不知道他们是否与我的问题),我对这个实体一行在我的config/routes.rb文件:
resources :groups
和这里是“集团”实体航线的总结:
groups GET /groups(.:format) groups#index
POST /groups(.:format) groups#create
new_group GET /groups/new(.:format) groups#new
edit_group GET /groups/:id/edit(.:format) groups#edit
group GET /groups/:id(.:format) groups#show
PUT /groups/:id(.:format) groups#update
DELETE /groups/:id(.:format) groups#destroy
Rails的版本:Rails的3.2.11
对我来说,它似乎是传入的请求有问题。什么是发送它,为什么它看起来很奇怪? – Jesper 2013-02-24 23:04:06
@Jesper,我从AngularJS应用程序(AJAX请求)发送它,但我想谁和发送它并不重要。请求有什么问题?正如你所看到的,我发送整个对象,但自从'name'出现在请求中并且出现在attr_accessible中 - 为什么它不存在于params [:group]中? – SET 2013-02-24 23:08:50
你应该把对象数据包装在一个''group“=> {data:”go here“}中。我看不到进入你的服务器的PUT请求。这是错的。 – Jesper 2013-02-24 23:32:56