2015-08-19 2 views
0
 def menu_params 
      params.permit(menu: [:name]).require(:menu)     
      end  

     def update 
     if @menu.update(menu_params)    ------->line 29 
      render json: @menu 
     else 
      render json: @menu.errors, status: :unprocessable_entity 
     end 
     end 

     def set_menu 
     @menu = Menu.find(params[:id]) 
     end 

http request (клиент для отдыха почтальона). Это запрос PUT (обновление) для редактирования обеих записей в таблице меню. с идентификатором, указанным в URL-адресе. http://localhost:3000/menus/1,3передать хэш в качестве аргумента при присвоении атрибутов

{ 
"menu": [ 
    { 
     "name":"breakfast12" 
    }, 

    { 
     "name":"lunch 12" 
    } 

    ] 
} 

Это часть кода у меня есть. Я пытаюсь обновить несколько строк в одном запросе.

Я также сконфигурирована коллекция в routes.rb

Но я перед этой ошибкой.

# PATCH/PUT/меню/1 ArgumentError в MenusController # обновление При назначении атрибутов, вы должны передать хэш в качестве аргумента.

Указывая на линии 29.

Есть ли способ, чтобы пройти через указанные идентификаторы в URL? Как видно здесь, он показывает только /menus/1.

И есть ли способ указать идентификаторы в окне запроса json?

+0

пожалуйста, оставьте свои параметры – thedanotto

+0

Попробуйте 'params.require (: меню) .permit (имя: [])' – Pavan

ответ

0

Попробуйте это:

def menu_params 
    params.require(:menu).permit(:name)     
end  
+0

Это не будут работать. Сначала испробовал это. Это порождает эту ошибку. undefined method 'permit 'for [{" name "=>" breakfast12 "}, {" name "=>" lunch 12 "}]: Array Его причина сильных параметров. – Chet

+0

Какая версия рельсов вы? – Kelseydh

Смежные вопросы