我有一些名为“组”的实体和一些基本CRUD操作的控制器。我面临的问题是,当我尝试更新(编辑)这个实体时,它没有得到更新。我只是为此使用update_attributes :
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[:group] 是空的。但是为什么会发生这种情况,因为我们可以看到所有需要的字段(在这种情况下为:name)都带有请求?在组模型中我确实有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