【发布时间】:2011-07-09 09:39:39
【问题描述】:
所以我收到“无路由匹配”错误,并且是 Rails 3(以及一般的 Rails)的新手,我真的不知道问题出在哪里。以下是相关路线:
resources :users
#...
match 'reset_password(/:reset_password_code)' => 'users#reset_password', :as => :reset_password, :via => :get
match 'reset_password' => 'users#reset_password_submit', :as => :reset_password, :via => :post
GET 方法工作正常。当在 get 页面上生成的表单 POST 时出现路由错误,它以这样的方式开始。
<%= form_for @user, :url => reset_password_url do |f| %>
它看起来好像它正在发布到正确的位置,因为 url 是使用“reset_password_url”生成的,它正在发布到它,并且 url 看起来应该......有人有什么想法吗?
更新
- 我使用的是 Rails 3.0.4
- 除了我在此提到的那些路线之外,我已经尝试了其他所有路线,但我仍然无法弄清楚为什么它不起作用。
【问题讨论】:
-
嗨,我刚刚测试了你的代码,它工作正常...你检查过表单上的方法是否真的是发布的?您是否尝试重新启动服务器以加载新路由?请记住,表单的操作 URL 中不能有任何重置代码。
-
生成的表单的开始标签是:
-
如果它适合您,那么我的路线中肯定有其他事情发生。至少它适用于 somebody :)
标签: ruby-on-rails-3 routing named-routing