设计更改默认路由不起作用

时间:2011-05-14 06:36:32

标签: ruby-on-rails devise

当我在https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes关注Devise Wiki时,我的默认路由名称根本没有变化,这是我的代码:

MyApp::Application.routes.draw do
  root :to => "profile#index"     

  devise_for :users
  namespace :user do
    root :to => "profile#index"
  end

  as :user do
  get "/login" => "devise/sessions#new"
  get "/signup" => "devise/registrations#new"
  end

这两条路线的改变没有用,所以我停了下来。

我如何更改它以便我的路线是:

/ users / sign_in = / login

/ users / sign_up = / signup

/ users / sign_out = / signout

/ users / edit = / edit

我正在使用Devise 1.3.4和Rails 3.0.7。

提前谢谢!

2 个答案:

答案 0 :(得分:8)

好的,我想出来了,生病只是输出来帮助其他新手!

路线本身会改变,但导航链接不会改变,除非以这种方式编码。 尝试http://localhost:3000/loginhttp://localhost:3000/users/sign_up,它们是相同的,但只需手动输入。

我的新代码如下所示(导航链接和路径配置一起):

<强> routes.rb中:

MyApp::Application.routes.draw do

  devise_for :users do
    root :to => "devise/registrations#new"
    get "/" => "devise/registrations#new"
    post '/' => 'registrations#new', :as => :new_user_registration 
    match '/', :to => 'devise/registrations#new'    
    get "/edit" => "devise/registrations#edit"
    match '/edit', :to => 'devise/registrations#edit'   
    get "/login" => "devise/sessions#new"
    match '/login', :to => 'devise/sessions#new'
    get "/logout" => "devise/sessions#destroy"
    match '/logout', :to => 'devise/sessions#destroy'   
  end



  namespace :user do
    root :to => "profile#index"
  end

views / devise / menu / _login_items.html.erb:

<% if user_signed_in? %>
  <li>
  <%= link_to('Logout', logout_path) %>        
  </li>
<% else %>
  <li>
  <%= link_to('Login', login_path)  %>  
  </li>
<% end %>

views / devise / menu / _registration_items.html.erb

<% if user_signed_in? %>
  <li>
  <%= link_to('Edit account', edit_path) %>
  </li>
<% else %>
  <li>
  <%= link_to('Sign up', root_path)  %>
  </li>
<% end %>

我当然希望这可以帮助那些像我一样迷失的人,并进入设计和RoR。它将让您很好地理解如何让路线以简单的方式呈现您想要的方式,但仍然有效。祝你好运!

答案 1 :(得分:2)

这些维基页面是非常好的资源。

https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes

告诉如何更改登录/注销路线,但也可以轻松应用于注册。看看