[RUBY-ON-RAILS] 유증 사용자 정의 경로 및 로그인 페이지
RUBY-ON-RAILS유증 사용자 정의 경로 및 로그인 페이지
나는 (레일 3 루비 1.9.2) 내 레일 응용 프로그램에서 작업하는 사용자 정의 경로를 얻기 위해 노력하고있어.
이것은 내 설정 / routes.rb 파일입니다
match '/dashboard' => 'home#dashboard', :as => 'user_root'
devise_for :user do
get "/login", :to => "devise/sessions#new" # Add a custom sign in route for user sign in
get "/logout", :to => "devise/sessions#destroy" # Add a custom sing out route for user sign out
get "/register", :to => "devise/registrations#new" # Add a Custom Route for Registrations
end
그러나 / 로그인에 양식을 제출하는 것은 나 / 등록 사용자 / sign_in로 이동 사용자 / sign_up. 어떻게 이런 일이 발생하지 않도록 않습니다. 또는 더 나은 사용자 / sign_in 등을 위해 기본적으로 모든 요청은 해당 경로가 아닌 유증에 의해 생성 된 기본 경로로 이동 있는지 확인하십시오.
또한 어떻게 일부 양식 로그인이 어떤 컨트롤러를 포함 할 수 있습니까? 그래서 사용자 / sign_in에 로그인 홈페이지 (홈 # 지수)에 페이지하지를 가질 수?
나는 맥 OS X 스노우 레오파드 (Snow Leopard)에, 루비 1.9.2에 레일 3 고안 1.1.3을 사용하고 있습니다.
감사!
해결법
-
==============================
1.유증 1.1.3 다음과 같은 작업을해야합니다
유증 1.1.3 다음과 같은 작업을해야합니다
devise_for :user, :path => '', :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }
경로 매개 변수에 빈 문자열 인 :이 생성 경로는 "/ 사용자 / ..."때문에의가가 추가되지 않습니다. : 경로 이름의 해시 원하는대로 경로를 명명 처리됩니다. 에 / 로그인 제출 내부적 때문에이 노선을 사용 유증은 당신이 원하는대로 작동하고 / 사용자 / log_in 당신을 가지고 가지 않을 것이다
유증 위키에서 정보를 원하시면 거기에 프런트 페이지에 로그인 폼을 추가하려면 : http://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app
또는 같은 것을 할 :
<%= form_tag new_user_session_path do %> <%= text_field_tag 'user[email]' %> <%= password_field_tag 'user[password]' %> <%= submit_tag 'Login' %>
-
==============================
2.다음은 나를 위해 일한 :
다음은 나를 위해 일한 :
devise_for :users do get "/login" => "devise/sessions#new" get "/register" => "devise/registrations#new" end
-
==============================
3.당신은 devise_for 블록에 특별한 경로를 넣지 마십시오 필요
당신은 devise_for 블록에 특별한 경로를 넣지 마십시오 필요
match '/dashboard' => 'home#dashboard', :as => 'user_root' get "/login", :to => "devise/sessions#new" # Add a custom sign in route for user sign in get "/logout", :to => "devise/sessions#destroy" # Add a custom sing out route for user sign out get "/register", :to => "devise/registrations#new" # Add a Custom Route for Registrations devise_for :user
이제 / 로그인 작동합니다. / 사용자 /도 sign_in.
-
==============================
4.구성 :
구성 :
devise_scope :user do get 'profile/edit' => 'devise/registrations#edit', :as => :edit_user_registration get 'profile/cancel' => 'devise/registrations#cancel', :as => :cancel_user_registration end devise_for :users, :path => '', :path_names => { :sign_in => 'login', :sign_out => 'logout', :sign_up => '', :registration => 'register', :edit => 'edit', :cancel => 'cancel', :confirmation => 'verification' }
경로 :
edit_user_registration GET /profile/edit(.:format) devise/registrations#edit cancel_user_registration GET /profile/cancel(.:format) devise/registrations#cancel 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 /password(.:format) devise/passwords#create new_user_password GET /password/new(.:format) devise/passwords#new edit_user_password GET /password/edit(.:format) devise/passwords#edit PATCH /password(.:format) devise/passwords#update PUT /password(.:format) devise/passwords#update GET /register/cancel(.:format) registrations#cancel user_registration POST /register(.:format) registrations#create new_user_registration GET /register(.:format) registrations#new GET /register/edit(.:format) registrations#edit PATCH /register(.:format) registrations#update PUT /register(.:format) registrations#update DELETE /register(.:format) registrations#destroy
-
==============================
5.내 컨트롤러에 내 자신의 인증 컨트롤러와 라우팅 유증 세션 컨트롤러를 생성
내 컨트롤러에 내 자신의 인증 컨트롤러와 라우팅 유증 세션 컨트롤러를 생성
devise_for :users, :controllers => { :sessions => 'auth' }, :path => '/', :path_names => { :sign_in => 'login', :sign_out => 'logout' }
이 코드는 / 로그인 및 / 로그 아웃 URL을 추가 할 것입니다.
보기에 대한 당신은 소스 코드 http://github.com/plataformatec/devise/blob/master/lib/devise/rails/routes.rb에서 찾을 수 있습니다
-
==============================
6.당신의 routes.rb 파일의 상단에 이것을 사용
당신의 routes.rb 파일의 상단에 이것을 사용
map.connect "users/:action", :controller => 'users', :action => /[a-z]+/i
색인 파일이 어디에서이를 사용합니다. 이 사용자 모델에있는 경우, 그에 따라 위 또는 변경을 사용하여
from https://stackoverflow.com/questions/3827011/devise-custom-routes-and-login-pages by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 카피 바라의 체크 박스를 확인? (0) | 2020.02.23 |
---|---|
[RUBY-ON-RAILS] 어떻게 레일 응용 프로그램에서 긴 ID를 사용 하는가? (0) | 2020.02.23 |
[RUBY-ON-RAILS] 자원과 자원 방법의 차이 (0) | 2020.02.23 |
[RUBY-ON-RAILS] 어떻게 레일에 collection_select에 대한 HTML 옵션을 설정합니까? (0) | 2020.02.23 |
[RUBY-ON-RAILS] 레일 : root_url 모든 알 수없는 경로를 재 지정 (0) | 2020.02.23 |