如何更改登录和注册urls在devise插件Rails3 [英] How to change the login and signup urls in devise plugin Rails3

查看:134
本文介绍了如何更改登录和注册urls在devise插件Rails3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用我的新Rails 3应用程序中的设备插件。我的问题是devise插件具有登录和注册的默认根目录

  / users / sign_in 
/ users / sign_up

我需要将其更改为

  / login 
/ signup

为此,我使用了以下路由

  devise_for:users do 
getlogin,:to => devise / sessions#new
getsignup,:to => devise / registrations#new
end

有了这个我需要指定'login_path'和'signup_path'在我的视图中的每个地方new_user_session_path和new_user_registration_path来到



我想要的是将'/ login'和'/ signup'映射到new_user_session_path的路由中的配置和new_user_registration_path。



我已经看到一个帖子,路由/ users / sign_in和/ users / sign_up到/ sign_in和/ sign_up使用下面显示的路由。

  devise_for:user,:as => 

我需要像这样的路由/ users / sign_in和/ users / sign_up的路由技术/ /登录和/注册。



任何人都可以帮助我。



更新:我已经改变了routes.rb文件到

  devise_for:users,
:controllers => {:sessions => 'devise / sessions'},
:skip => [:sessions] do
get'/ login'=> devise / sessions#new,:as => :new_user_session
post'/ login'=> 'devise / sessions#create',:as => :user_session
get'/ signout'=> 'devise / sessions#destroy',:as => :destroy_user_session
get'/ signup'=> 'devise / registrations#new',:as => :new_user_registration
end

但是,当我在我的观点中使用link_to'new_user_registration'在浏览器中显示为/ signup

解决方案

这里有一些比您提到的更多选项,但很明显: p>

  devise_for:users,
:controllers => {:registrations => 用户/注册,
:confirmations => 用户/确认,
:sessions => 'devise / sessions'},
:skip => [:sessions] do
get'/ signin'=> devise / sessions#new,:as => :new_user_session
post'/ signin'=> 'devise / sessions#create',:as => :user_session
get'/ signout'=> 'devise / sessions#destroy',:as => :destroy_user_session
get/ signup=> users / registrations#new,:as => :new_user_registration
end

更多的是,使用:registrations => ; 用户/注册我们可以另外自定义重定向:

  class Users :: RegistrationsController& Devise :: RegistrationsController 
protected

def after_sign_up_path_for(资源)
welcome_path#它不是一个主路径
end

def after_update_path_for )
edit_user_registration_path
end
end

Devise有一个很好的<一个href =https://github.com/plataformatec/devise/wiki =noreferrer> wiki 。


I am using device plugin in my new Rails 3 App. My issue is devise plugin has default roots for login and signup

/users/sign_in
/users/sign_up

I need to change this to

/login 
/signup

For this I used the following routing

 devise_for :users do
   get "login", :to => "devise/sessions#new"
   get "signup", :to => "devise/registrations#new"
 end

With this I need to specify 'login_path' and 'signup_path' every where in my views where new_user_session_path and new_user_registration_path comes

What I want is a configuration in routes which maps '/login' and '/signup' to new_user_session_path and new_user_registration_path.

I have seen a post which route /users/sign_in and /users/sign_up to /sign_in and /sign_up using the below shown routing.

  devise_for :user, :as => ''

I need some routing technique like this which routes /users/sign_in and /users/sign_up to /login and /signup.

Could anyone please help me with this.

UPDATE: I have changed my routes.rb file to

  devise_for :users,
         :controllers => { :sessions => 'devise/sessions'},
         :skip => [:sessions] do
       get '/login' => "devise/sessions#new", :as => :new_user_session
       post '/login' => 'devise/sessions#create', :as => :user_session
       get '/signout' => 'devise/sessions#destroy', :as => :destroy_user_session
       get '/signup' => 'devise/registrations#new', :as => :new_user_registration
  end

But still when I use link_to 'new_user_registration' in my views its not showing as '/signup' in the browser

解决方案

Here are a little bit more options than you asked but it's clear:

  devise_for :users,
             :controllers => { :registrations => "users/registrations",
                               :confirmations => "users/confirmations",
                               :sessions => 'devise/sessions'},
             :skip => [:sessions] do
    get '/signin'   => "devise/sessions#new",       :as => :new_user_session
    post '/signin'  => 'devise/sessions#create',    :as => :user_session
    get '/signout'  => 'devise/sessions#destroy',   :as => :destroy_user_session
    get "/signup"   => "users/registrations#new",   :as => :new_user_registration
  end

Even more, with :registrations => "users/registrations" we can additionally customize redirects:

class Users::RegistrationsController < Devise::RegistrationsController
  protected

  def after_sign_up_path_for(resource)
    welcome_path # it's not a home path
  end

  def after_update_path_for(resource)
    edit_user_registration_path
  end
end

Devise has a good wiki.

这篇关于如何更改登录和注册urls在devise插件Rails3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆