Ruby on rails 设计更改不工作的默认路由

Ruby on rails 设计更改不工作的默认路由,ruby-on-rails,devise,Ruby On Rails,Devise,当我在上使用Desive 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

当我在上使用Desive 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
两条路线的改变不起作用,所以我停了下来

我如何更改它,使我的路线:

/用户/登录=/login

/用户/sign\u up=/signup

/用户/注销=/signout

/用户/edit=/edit

我正在使用Desive 1.3.4和Rails 3.0.7


提前谢谢你

好吧,我想好了,我会把这个打出来帮助其他新手

路线本身会改变,但导航链接不会改变,除非以这种方式编码。 试试看,它们都是一样的,只是需要手动输入

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

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
<% if user_signed_in? %>
  <li>
  <%= link_to('Logout', logout_path) %>        
  </li>
<% else %>
  <li>
  <%= link_to('Login', login_path)  %>  
  </li>
<% end %>
视图/设计/菜单/\u登录\u items.html.erb:

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
<% if user_signed_in? %>
  <li>
  <%= link_to('Logout', logout_path) %>        
  </li>
<% else %>
  <li>
  <%= link_to('Login', login_path)  %>  
  </li>
<% end %>

  • 视图/designe/menu/\u registration\u 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 %>
    
    
    

  • 我当然希望这能帮助那些像我一样迷路的人,他们刚刚进入Desive和RoR。它将使您很好地理解如何使路线以您希望的方式以简单的方式显示,但仍然有效。祝你好运

    这些wiki页面是非常好的资源


    说明如何更改登录/注销路由,但也可以轻松应用于注册。看一看

    将块传递给
    design\u for
    会给出一个不推荐使用的警告。您可以将其替换为
    design\u for:users',后跟一个
    design\u scope:user`并将块传递给它。