Ajuda para resolver um erro de roteamento em Rails
-
05-07-2019 - |
Pergunta
Eu tenho um controlador chamado form_questions_answers
com um método em que chamou modify_rule
mas quando eu realizar um post para /form_questions_answers/modify_rule/60
Rails me diz:
Routing Error
No route matches "/form_questions_answers/modify_rule/60" with {:method=>:post}
Por que isso está acontecendo, tenho map.resources :form_question_answers
em routes.rb, e map.connect ':controller/:action/:id'
na parte inferior do arquivo routes.rb, então porque não é a ação modify_rule
sendo acionado?
Solução
/form_questions_answers/modify_rule/60
não aceitaria POST em uma base map.resources. Ele seria ou um GET ou PUT em linha com REST.
Você pode querer dar uma olhada Roteamento Rails guia para algumas informações sobre rotas.
dia do peru feliz!
Outras dicas
Se você estiver usando rotas baseados em recursos que você provavelmente vai querer remover a padrão rotas . Dito isto, você provavelmente quer adicionar um novo membro à sua rota form_question_answers
assim:
map.resources 'form_questions_answers', :member => { :modify_rule => :post }
Você pode ler mais sobre como adicionar opções para as suas rotas aqui .