【问题标题】:Devise custom routing links not working设计自定义路由链接不起作用
【发布时间】:2013-10-15 03:13:03
【问题描述】:

我正在运行 Rails 3.2.12 和 Devise 3.1,并且在 routes.rb 中有这个:

devise_for :users do
  get '/login'    => 'devise/sessions#new', as: :login
  get '/logout'   => 'devise/sessions#destroy', as: :logout
end

但是,当我点击

127.0.0.1:3000/login

我明白了

No route matches [GET] "/login"

有效的是

127.0.0.1:3000/users/login

我还需要做些什么才能跳过输入 /users/ 部分吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:
    devise_for :users, :path => '', :path_names => { :sign_in => 'login'}
    

    关于在 this StackOverflow post 上自定义设计路径的好信息 :)


    以下是一些适用于我们其中一款实时应用的实时代码:

      #User Management (Devise)
      devise_for :users, :path => '', :controllers => {:sessions => 'sessions', :registrations => 'registrations'}, :path_names => { :sign_in => 'login', :password => 'forgot', :confirmation => 'confirm', :unlock => 'unblock', :registration => 'register', :sign_up => 'new', :sign_out => 'logout'}
      as :user do
        get 'register', :to => 'devise/registrations#new'
        delete 'logout', :to => 'sessions#destroy'
      end
    

    【讨论】:

      【解决方案2】:
      devise_scope :user do
        get "/login" => "devise/sessions#new"
      end
      

      详情请见this

      【讨论】:

        猜你喜欢
        • 2016-01-25
        • 2016-05-10
        • 1970-01-01
        • 2013-11-04
        • 2017-12-17
        • 2019-01-05
        • 1970-01-01
        • 1970-01-01
        • 2017-03-25
        相关资源
        最近更新 更多