【问题标题】:How can i remove the default routes generated by Clearance?如何删除 Clearance 生成的默认路由?
【发布时间】:2011-04-13 13:57:31
【问题描述】:

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)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 routes clearance


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我通过出售 gem 解决了这个问题。如中所述:How do I vendorize gems for Rails3/Bundler

      第一次做:

      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中删除了我不想要的路线 这不是最干净的解决方案,但它有效!

      【讨论】:

      • 谢谢!我遇到的最好的方式。也适用于 1.3.0
      猜你喜欢
      • 2014-04-09
      • 2010-11-28
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      相关资源
      最近更新 更多