在 AngularJS 服务中包装参数以更新 API 请求
Wrap parameters in AngularJS service for update API request
我正在尝试使用 AngularJS 和 API
进行更新
服务:expense.js
angular
.module('timeTrackerApp.services',[])
.service('Expense', ['$resource', function ($resource) {
return $resource('/api/v1/expenses/:id', {id:'@id'}, {
'update': {
method: 'PUT'
},
'destroy': {
method: 'DELETE'
}
})
}])
控制器:expenses_controller.rb
def permitted_params
params.require(:expense).permit(:name, :price)
end
所以预计 JSON 格式是 { expense: { name: "value", price: value } }
但我得到了 { name: "value", price: value }
所以谁能帮我把它包装成根节点(费用)?
当控制器名称与模型名称匹配时,Rails 会自动包装参数。 Check doc.
如果它失败了,你可以在你的控制器中手动完成:
wrap_parameters :expense, include: [:name, :price]
所以如果您收到:
{ name: 'name', price: 'price' }
控制器会给你:
{ name: 'name', price: 'price', expense: { name: 'name', price: 'price' } }
服务器端也是如此,因为它简洁明了。
我正在尝试使用 AngularJS 和 API
进行更新服务:expense.js
angular
.module('timeTrackerApp.services',[])
.service('Expense', ['$resource', function ($resource) {
return $resource('/api/v1/expenses/:id', {id:'@id'}, {
'update': {
method: 'PUT'
},
'destroy': {
method: 'DELETE'
}
})
}])
控制器:expenses_controller.rb
def permitted_params
params.require(:expense).permit(:name, :price)
end
所以预计 JSON 格式是 { expense: { name: "value", price: value } }
但我得到了 { name: "value", price: value }
所以谁能帮我把它包装成根节点(费用)?
Rails 会自动包装参数。 Check doc.
如果它失败了,你可以在你的控制器中手动完成:
wrap_parameters :expense, include: [:name, :price]
所以如果您收到:
{ name: 'name', price: 'price' }
控制器会给你:
{ name: 'name', price: 'price', expense: { name: 'name', price: 'price' } }
服务器端也是如此,因为它简洁明了。