我想完全禁用路由/users/sign_in 以获取和发布。
我能够使用以下方法成功覆盖它们:
devise_for :users do
get "/admin" => "devise/sessions#new", :as => :new_user_session
post "/admin" => "devise/sessions#create", :as => :user_session
end
当我运行 rake 路线时,我看到以下内容:
new_user_session GET /admin(.:format) {:controller=>"devise/sessions", :action=>"new"}
user_session POST /admin(.:format) {:controller=>"devise/sessions", :action=>"create"}
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"}
我可以从/admin 和/users/sign_in 访问登录。但是我想完全删除最后两行,可以吗?
我尝试了一些与 documentation 不同的组合这似乎做到了,但它也覆盖了一些有用的,比如 password/new 和 password/edit 路由。
最佳答案
Katz 的解决方案不再像 Cirulli 所指出的那样有效。
请尝试以下操作。
devise_for :users, :skip => [:sessions]
as :user do
get "/admin" => "devise/sessions#new", :as => :new_user_session
post "/admin" => "devise/sessions#create", :as => :user_session
end
关于ruby-on-rails - Rails - 设计,如何禁用一些默认路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8418514/