ruby on rails 3 - pantalla - Cómo cambiar las URL de inicio de sesión y registro en el complemento de desarrollo Rails3
editar pagina de registro wordpress (5)
Estoy usando el complemento del dispositivo en mi nueva aplicación Rails 3. Mi problema es que el complemento de diseño tiene raíces predeterminadas para iniciar sesión y registrarse
/users/sign_in
/users/sign_up
Necesito cambiar esto a
/login
/signup
Para esto usé el siguiente enrutamiento
devise_for :users do
get "login", :to => "devise/sessions#new"
get "signup", :to => "devise/registrations#new"
end
Con esto necesito especificar ''login_path'' y ''signup_path'' en todas partes en mis vistas donde vienen new_user_session_path y new_user_registration_path
Lo que quiero es una configuración en las rutas que mapea ''/ login'' y ''/ signup'' a new_user_session_path y new_user_registration_path.
He visto una publicación que enruta / users / sign_in y / users / sign_up a / sign_in y / sign_up usando el enrutamiento mostrado a continuación.
devise_for :user, :as => ''''
Necesito alguna técnica de enrutamiento como esta que enrute / users / sign_in y / users / sign_up a / login y / signup.
¿Alguien podría ayudarme con esto?
ACTUALIZACIÓN: he cambiado mi archivo routes.rb a
devise_for :users,
:controllers => { :sessions => ''devise/sessions''},
:skip => [:sessions] do
get ''/login'' => "devise/sessions#new", :as => :new_user_session
post ''/login'' => ''devise/sessions#create'', :as => :user_session
get ''/signout'' => ''devise/sessions#destroy'', :as => :destroy_user_session
get ''/signup'' => ''devise/registrations#new'', :as => :new_user_registration
end
Pero aun así, cuando uso link_to ''new_user_registration'' en mis vistas, no aparece como ''/ signup'' en el navegador
Aquí hay un poco más opciones de las que pediste, pero está claro:
devise_for :users,
:controllers => { :registrations => "users/registrations",
:confirmations => "users/confirmations",
:sessions => ''devise/sessions''},
:skip => [:sessions] do
get ''/signin'' => "devise/sessions#new", :as => :new_user_session
post ''/signin'' => ''devise/sessions#create'', :as => :user_session
get ''/signout'' => ''devise/sessions#destroy'', :as => :destroy_user_session
get "/signup" => "users/registrations#new", :as => :new_user_registration
end
Aún más, con :registrations => "users/registrations"
podemos personalizar redirecciones:
class Users::RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
welcome_path # it''s not a home path
end
def after_update_path_for(resource)
edit_user_registration_path
end
end
Devise tiene una buena wiki .
Pude solucionar mi problema usando el siguiente código en mis rutas
devise_for :users,
:controllers => { :sessions => ''devise/sessions''},
:skip => [:sessions] do
get ''/login'' => "devise/sessions#new", :as => :new_user_session
post ''/login'' => ''devise/sessions#create'', :as => :user_session
get ''/signout'' => ''devise/sessions#destroy'', :as => :destroy_user_session
get "/signup" => "devise/registrations#new", :as => :new_user_registration
end
Pero aún en mi opinión si uso
link_to "Register", new_user_registration_path
En mi navegador se muestra como
/user/sign_up and not as /signup
Pero si escribo / me registro directamente, obtendré la página de registro. ¿Hay algún mapeo que necesite hacer aquí?
Si estoy leyendo y entendiendo tu pregunta correctamente, estás buscando ''coincidencia''.
devise_for :users match "/login" => "devise/sessions#new" match "/signup" => "devise/registrations#new"
Asegúrese de tenerlos en el orden correcto ya que coinciden según los números de línea en el archivo.
Se puede encontrar más en: http://guides.rubyonrails.org/routing.html
editar config / routes.rb
devise_for: users, path: ''''
devise_for :users, path: '''', path_names: { sign_in: ''login'', sign_out: ''logout'', password: ''secret'', confirmation: ''verification'', unlock: ''unblock'', registration: ''register'', sign_up: ''cmon_let_me_in'' }
new_user_session GET /login(.:format) devise/sessions#new
user_session POST /login(.:format) devise/sessions#create
destroy_user_session DELETE /logout(.:format) devise/sessions#destroy
user_password POST /secret(.:format) devise/passwords#create
new_user_password GET /secret/new(.:format) devise/passwords#new
edit_user_password GET /secret/edit(.:format) devise/passwords#edit
PATCH /secret(.:format) devise/passwords#update
PUT /secret(.:format) devise/passwords#update
cancel_user_registration GET /register/cancel(.:format) devise/registrations#cancel
user_registration POST /register(.:format) devise/registrations#create
new_user_registration GET /register/cmon_let_me_in(.:format) devise/registrations#new
edit_user_registration GET /register/edit(.:format) devise/registrations#edit
PATCH /register(.:format) devise/registrations#update
PUT /register(.:format) devise/registrations#update
DELETE /register(.:format) devise/registrations#destroy
espero no ser demasiado tarde;)
así es como funciona (solo péguelo en su routes.rb y listo):
devise_for :users, :controllers => {:sessions => ''devise/sessions''}, :skip => [:sessions] do
get ''login'' => ''devise/sessions#new'', :as => :new_user_session
post ''login'' => ''devise/sessions#create'', :as => :user_session
get ''logout'' => ''devise/sessions#destroy'', :as => :destroy_user_session
get ''register'' => ''devise/registrations#new'', :as => :new_user_registration
end