Разработать изменение маршрутов по умолчанию не работает - PullRequest
2 голосов
/ 14 мая 2011

когда я следую за вики-разработкой на https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes, мои имена маршрутов по умолчанию вообще не меняются, вот мой код:

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 ]

8 голосов
/ 16 мая 2011

ОК, я понял, плохо, просто напечатайте это, чтобы помочь другим новичкам!

Сами маршруты меняются, но не навигационные ссылки, если они не закодированы таким образом.попробуйте http://localhost:3000/login и http://localhost:3000/users/sign_up, это одно и то же, но их нужно вводить вручную.

Мой новый код выглядит следующим образом (навигационные ссылки и конфигурации маршрута вместе):

rout.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 %>

Я, безусловно, надеюсь, что это поможет людям, которые были потеряны, как я и только что попали в devise и RoR.это даст вам хорошее понимание того, как заставить маршруты выглядеть так, как вы хотите, чтобы они были простыми, но все же работали.Удачи!

2 голосов
/ 11 июля 2011

Эти вики-страницы очень хорошие ресурсы.

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

Сообщает, как изменить маршруты входа / выхода, но это также может быть легко применено к регистрации. Взгляните

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...