【发布时间】:2018-03-27 08:39:55
【问题描述】:
我正在使用Devise 并像这样更改其默认路由:
devise_for :users, :path => '',skip: [:sessions]
as :user do
get '/forgotten' => 'users/passwords#new', as: :password
post '/forgotten' => 'users/passwords#create'
put '/forgotten' => 'users/passwords#update'
get '/password/edit' => 'users/passwords#edit'
end
new.html.erb(用于发送带有新密码说明的电子邮件的视图)的生成 URL(表单操作属性)是 /forgotten.user,这是不正确的。正确的 URL 是 /forgotten,它与不同的 HTTP 动词 GET/POST/PUT 一起使用。
在请求新密码表单(new.html.erb)中:
<%= form_for(resource, as: resource_name,
url: password_path(resource_name), html: { method: :post})
如果没有我的 rake routes 自定义路由,我会看到这些路由:
用户密码 |补丁 | /密码(.:格式) |用户/密码#update
放 | /密码(.:格式) |用户/密码#update
发布 | /密码(.:格式) |用户/密码#create
如何自定义此路由并用于不同的 HTTP 动词?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 devise