2016-05-31 3 views
0

У меня есть форма, которую мне нужно отправить на «обновление» в контроллере. Вместо этого вызывается действие «показать», и действие «обновление» никогда не запускается.Rails show action, вызываемое вместо действия update

Мои маршруты:

 evaluations GET /evaluations(.:format)    evaluations#index 
        POST /evaluations(.:format)    evaluations#create 
    new_evaluation GET /evaluations/new(.:format)   evaluations#new 
    edit_evaluation GET /evaluations/:id/edit(.:format)  evaluations#edit 
     evaluation GET /evaluations/:id(.:format)   evaluations#show 
        PATCH /evaluations/:id(.:format)   evaluations#update 
        PUT /evaluations/:id(.:format)   evaluations#update 
        DELETE /evaluations/:id(.:format)   evaluations#destroy 

Форма создана:

action: "<%= evaluation_path %>", 
 
method: "patch" //I have tried both "post" and "put" as well

Мой контроллер имеет действительное "обновление" действия, а также.

+0

Форма отображается из объекта Javascript, который передается компоненту React. – cmwall

+0

Пожалуйста, покажите нам весь код формы, по крайней мере, form_for или form_tag. – Leito

+0

Нет метки form_for. Форма создается путем передачи объекта Javascript в компонент React, который затем устанавливает действие и метод. – cmwall

ответ

1

вы не должны забывать, чтобы пройти id или record, как следует:

action: evaluation_path(@evaluation), method: "patch" 

также способ избежать action ключа:

button_to "Update", evaluation_path(@evaluation), method: "patch" 
+0

Спасибо, но это все еще вызывает метод show. – cmwall

+0

@cmwall upadted answer –

1

Попробуйте метод PATCH прописными буквами. Просто догадка. Глаголы HTTP часто чувствительны к регистру и предназначены для использования в верхнем регистре.

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