1

Clearance 定义了以下路线: routes.rb

但我想指定我自己的路线:

match 'login'  => 'clearance/sessions#new', :as => 'sign_in'
match 'logout' => 'clearance/sessions#destroy', :via => :delete, :as => 'sign_out'

'rake routes' 给出:

            sign_in        /login(.:format)                        {:action=>"new", :controller=>"clearance/sessions"}
           sign_out DELETE /logout(.:format)                       {:action=>"destroy", :controller=>"clearance/sessions"}

而且(我不想要这些):

          passwords POST   /passwords(.:format)                    {:action=>"create", :controller=>"clearance/passwords"}
       new_password GET    /passwords/new(.:format)                {:action=>"new", :controller=>"clearance/passwords"}
            session POST   /session(.:format)                      {:action=>"create", :controller=>"clearance/sessions"}
        new_session GET    /session/new(.:format)                  {:action=>"new", :controller=>"clearance/sessions"}
                    DELETE /session(.:format)                      {:action=>"destroy", :controller=>"clearance/sessions"}
      user_password POST   /users/:user_id/password(.:format)      {:action=>"create", :controller=>"clearance/passwords"}
 edit_user_password GET    /users/:user_id/password/edit(.:format) {:action=>"edit", :controller=>"clearance/passwords"}
                    PUT    /users/:user_id/password(.:format)      {:action=>"update", :controller=>"clearance/passwords"}
              users POST   /users(.:format)                        {:action=>"create", :controller=>"clearance/users"}
           new_user GET    /users/new(.:format)                    {:action=>"new", :controller=>"clearance/users"}
            sign_up        /sign_up(.:format)                      {:action=>"new", :controller=>"clearance/users"}
            sign_in        /sign_in(.:format)                      {:action=>"new", :controller=>"clearance/sessions"}
           sign_out DELETE /sign_out(.:format)                     {:action=>"destroy", :controller=>"clearance/sessions"}

如何删除 Clearance 生成的默认路由?

间隙 (0.10.3.2)、导轨 (3.0.6)、红宝石 (1.9.2p180)

4

2 回答 2

2

看起来(来自这篇文章:http ://robots.thoughtbot.com/post/159805560/tips-for-writing-your-own-rails-engine )创建者煞费苦心地确保应用程序的路线覆盖通关路线。(您可以将它们全部发送到未找到的页面或定义您自己的操作。)

我知道没有办法简单地取消定义它们。

于 2011-04-13T16:27:19.207 回答
2

我通过出售宝石解决了这个问题。如中所述:如何为 Rails3/Bundler 供应 gems

首先做了:

gem unpack clearance --version 0.10.3.2 --target vendor/gems

然后在我的 Gemfile 中添加路径:

gem 'clearance', :path => "vendor/gems/clearance-0.10.3.2"

然后我删除了我不想要的路线vendor/gems/clearance-0.10.3.2/config/routes.rb 这不是最干净的解决方案,但它有效!

于 2011-06-16T07:54:21.747 回答