【问题标题】:Help solving a routing error in Rails帮助解决 Rails 中的路由错误
【发布时间】:2009-11-27 03:48:55
【问题描述】:

我有一个名为 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 动作呢?

【问题讨论】:

  • nm,原来我在操作 URL 中有拼写错误 - 而不是 'form_questions_answers' 它应该是 - 'form_question_answers' - 一旦我修复了这个错误,它就像魔术一样工作。很抱歉,请关闭。

标签: ruby-on-rails routing controllers


【解决方案1】:

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

您可能想查看rails routing guide 以获取有关路线的一些信息。

火鸡节快乐!

【讨论】:

    【解决方案2】:

    如果您使用基于资源的路由,您可能希望删除 default routes。也就是说,您可能希望像这样向您的 form_question_answers 路由添加一个新成员:

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

    您可以阅读更多关于为您的路线添加选项here

    【讨论】:

      猜你喜欢
      • 2011-11-14
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多