帮助解决Rails中的路由错误

时间:2009-11-27 03:48:55

标签: ruby-on-rails routing controllers

我有一个名为form_questions_answers的控制器,其中有一个名为modify_rule的方法,但当我向/form_questions_answers/modify_rule/60执行帖子时,Rails告诉我:

Routing Error
No route matches "/form_questions_answers/modify_rule/60" with {:method=>:post}

为什么会发生这种情况,我在routes.rb中有map.resources :form_question_answers,在routes.rb文件的底部有map.connect ':controller/:action/:id',那么为什么不会触发modify_rule操作?

2 个答案:

答案 0 :(得分:1)

/form_questions_answers/modify_rule/60不会在map.resources的基础上接受POST。它可以是符合REST的GET或PUT。

您可能需要查看rails routing guide以获取有关路线的信息。

快乐的火鸡日!

答案 1 :(得分:0)

如果您使用的是基于资源的路线,则可能需要删除default routes。这就是说你可能想在你的form_question_answers路线上添加一个新成员:

map.resources 'form_questions_answers', :member => { :modify_rule => :post } 

您可以阅读有关向路线here添加选项的详情。