복붙노트

[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.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. ==============================

    2.다음은 나를 위해 일한 :

    다음은 나를 위해 일한 :

      devise_for :users do
        get "/login" => "devise/sessions#new"
        get "/register" => "devise/registrations#new"
      end
    
  3. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    6.당신의 routes.rb 파일의 상단에 이것을 사용

    당신의 routes.rb 파일의 상단에 이것을 사용

    map.connect "users/:action", :controller => 'users', :action => /[a-z]+/i 
    

    색인 파일이 어디에서이를 사용합니다. 이 사용자 모델에있는 경우, 그에 따라 위 또는 변경을 사용하여

  7. from https://stackoverflow.com/questions/3827011/devise-custom-routes-and-login-pages by cc-by-sa and MIT license