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?

Foi útil?

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 .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top