Gro*_*ain 1 routing named-routing ruby-on-rails-3
所以我得到了一个'No route matches'错误,并且对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
Run Code Online (Sandbox Code Playgroud)
GET方法工作正常.当在get页面上生成的表单POST时,我收到路由错误,就像这样开始.
<%= form_for @user, :url => reset_password_url do |f| %>
Run Code Online (Sandbox Code Playgroud)
它看起来像它的发布到正确的位置,如使用"reset_password_url",它的发布到它生成的URL和URL看起来应该......人有什么想法?
UPDATE
在我的形式中,rails(正确地)假设因为我有一个用户使用form_for帮助器,我想更新用户,而不是创建一个新用户.
因此,它使用PUT方法发布我的表单.要解决路由问题,我只需要将最后一条路由更改为:
match 'reset_password' => 'users#reset_password_submit', :as => :reset_password, :via => :put
Run Code Online (Sandbox Code Playgroud)
我在webkit中使用Web Inspector查看整个请求之后才发现问题,并查看了正在发送的_ method参数.
| 归档时间: |
|
| 查看次数: |
5385 次 |
| 最近记录: |