我有一些實體名爲'組'和控制器的一些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