2011-03-20 147 views
0

我有一个关于更新属性的问题。Rails,更新多个嵌套属性RESTfully

我有一个用户模型和债务模型。我该如何更新所有属于特定用户(users /:user_id/debts)的债务以使其从站点上的链接标记为付费(布尔属性)?

回答

1

您无法将此操作适用于7个REST操作,您必须在债务模型上创建新的收集方法。

#in routes.rb 

resources :users do 
    resources :debts do 
    post 'bulk_update', :on => :collection 
    end 
end 

在你debts_controller.rb

def bulk_update 
    @user = User.find(params[:user_id]) 
    @debts = @user.debts 
    #etc... 
end 

在你的意见

link_to "Update user's debts", bulk_update_user_debts_path(@user), :method=>:post 

这样的事情,你可以添加你的可选参数,以及适合您的任务。 希望这有助于。

+0

你为什么要做method =>:post而不是method =>:put? – jonepatr 2011-03-20 15:33:55

+0

你也可以做“放”。 – dombesz 2011-03-20 15:50:03