В моем Vue интерфейсе я установил этот метод:
bulkAction(selected) {
this.$secured.patch('/api/v1/bulk_edit', {
data: this.selected,
sold: this.bulk_sold
})
.then((response) => {
console.log(response.data)
});
}
selected: []
- это массив объектов. sold
- это логическое значение и атрибут в выбранных объектах массива.
Так, например, если значение true для true, я хочу установить значение true для всех объектов в массиве.
Имея это, я могу отправить на сервер массив объектов (данных) и проданных параметров.
В контроллере rails я установил этот метод:
def bulk_edit
@item_locations = ItemLocation.where(params[:data])
bulk_params = params.permit(:sold)
@item_locations.each do |item_location|
item_location.update(bulk_params)
end
end
Какой возвращает:
NoMethodError (undefined method `update' for #<ActionController::Parameters:0x00007fa094596140>):
Я думаю, что это неправильная часть:
@item_locations = ItemLocation.where(params[:data])
Но я не уверен, как преобразовать его.
Запрос выглядит :
app/controllers/api/v1/items_controller.rb:47:in `bulk_edit'
Started PATCH "/api/v1/bulk_edit" for 127.0.0.1 at 2020-01-20 16:40:28 +0800
Processing by Api::V1::ItemsController#bulk_edit as HTML
Parameters: {"data"=>[{"id"=>"44ed3183-cce2-4f3b-b673-6052d8cc5fe5"}, {"id"=>"ed7438dc-60ed-4887-bf86-90b6161c0074"}], "sold"=>false, "item"=>{}}
Есть предложения?