当我在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。
提前谢谢!
答案 0 :(得分:8)
好的,我想出来了,生病只是输出来帮助其他新手!
路线本身会改变,但导航链接不会改变,除非以这种方式编码。 尝试http://localhost:3000/login和http://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
告诉如何更改登录/注销路线,但也可以轻松应用于注册。看看