Note that there are some explanatory texts on larger screens.

plurals
  1. POUnable to over-write devise routes
    text
    copied!<p>I am using devise and I want to customize its urls:</p> <pre><code>users/sign_in --&gt; account/login users/sign_up --&gt; account/register users/edit --&gt; account/profile ... </code></pre> <p>Now my <code>routes.rb</code> looks like this:</p> <pre><code> devise_scope :user do get '/account/login' =&gt; 'devise/sessions#new' post 'account/login' =&gt; 'devise/sessions#create', as: :user_session delete 'account/logout' =&gt; 'devise/sessions#destroy', as: :destroy_user_session post 'account/password' =&gt; 'devise/passwords#update', as: :user_password get 'account/password/forgot' =&gt; 'devise/passwords#new', as: :new_user_password get 'account/password/edit' =&gt; 'devise/passwords#edit', as: :edit_user_password put 'account/password' =&gt; 'devise/passwords#update' get 'account/cancel' =&gt; 'devise/registrations#cancel', as: :cancel_user_registration post 'account' =&gt; 'devise/registrations#create', as: :user_registration get 'account/register' =&gt; 'devise/registrations#new', as: :new_user_registration get 'account' =&gt; 'devise/registrations#edit', as: :edit_user_registration put 'account' =&gt; 'devise/registrations#edit' delete 'account' =&gt; 'devise/registrations#destroy' end devise_for :users </code></pre> <p>I manage to over-write <code>profile, forgot, register</code> bug not <code>login</code>:</p> <p>So when I click on the link <strong>"Sign up"</strong> link in the generic Devise Login form I am redirected to <code>/register</code> in the browser, but when I click the <strong>"Sign in"</strong> link I am still redirected to <code>/users/sign_in</code> rather than <code>login</code>.</p> <p>I tried <code>match</code> vs. <code>post + get</code> for the routes but without luck. I know that if I generate the forms myself I can decide how the links look like, but I would prefer to user the generic devise forms and also I am curious why the other routes work.</p> <p>Running <code>rake routes</code> produces this (with the top five rows from my routes):</p> <pre><code> new_user_session GET /account/login(.:format) devise/sessions#new user_session POST /account/login(.:format) devise/sessions#create destroy_user_session DELETE /account/logout(.:format) devise/sessions#destroy user_password POST /account/password(.:format) devise/passwords#update new_user_password GET /account/password/forgot(.:format) devise/passwords#new edit_user_password GET /account/password/edit(.:format) devise/passwords#edit account_password PUT /account/password(.:format) devise/passwords#update cancel_user_registration GET /account/cancel(.:format) devise/registrations#cancel user_registration POST /account(.:format) devise/registrations#create new_user_registration GET /account/register(.:format) devise/registrations#new edit_user_registration GET /account(.:format) devise/registrations#edit account PUT /account(.:format) devise/registrations#edit DELETE /account(.:format) devise/registrations#destroy new_user_session GET /users/sign_in(.:format) devise/sessions#new POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy POST /users/password(.:format) devise/passwords#create GET /users/password/new(.:format) devise/passwords#new GET /users/password/edit(.:format) devise/passwords#edit PUT /users/password(.:format) devise/passwords#update GET /users/cancel(.:format) devise/registrations#cancel POST /users(.:format) devise/registrations#create GET /users/sign_up(.:format) devise/registrations#new GET /users/edit(.:format) devise/registrations#edit PUT /users(.:format) devise/registrations#update DELETE /users(.:format) devise/registrations#destroy root / posts#show </code></pre> <p><strong>Update</strong>: I am now mimicking all of devise's routes (See updated routes.rb). But I am still redirected to <code>/users/sign_in</code></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload