2017-12-22 2 views
1

Hallo Ich habe eine Software, in der Benutzer viele Projekte haben können, und innerhalb dieser Projekte können sie ein "Lieblings" -Projekt haben, das geladen wird, wenn sie sich anmelden, wenn sie eins haben.Dynamische Wurzel Ruby on Rails

Ich möchte den Pfad "app.example.io" haben, unabhängig davon, ob sie ein Lieblingsprojekt haben oder nicht. Wenn sie kein Projekt haben, möchte ich, dass der Pfad "app.example.io" lautet, aber sende sie an "projects/index" und wenn sie ein "favorisiertes" Projekt haben, möchte ich, dass der Pfad dieselbe "app" bleibt .example.io "aber ich möchte sie an das spezifische Projekt" projects /: project_id "senden.

Punkt ist, ich möchte eine Möglichkeit, die URL immer gleich sein, wenn sie sich anmelden, unabhängig davon, ob sie ein "Lieblings" -Projekt haben oder nicht.

constraints subdomain: 'app' do 
    namespace :users do 

     devise_for :users, :skip => [:registrations], controller: {passwords: 'passwords', sessions: 'sessions'}, path: '', path_names: {sign_in: 'login', sign_out: 'logout'} 

     authenticated do 
      root to: "projects#show", as: :authenticated 
     end 

     unauthenticated do 
      root to: "users/sessions#new", as: :unauthenticated 
     end 
     end 

     devise_scope :user do 
     root to: "projects#show" 
     end 

, dass mein Weg ist Datei und meine Sitzungen Controller ist: Sie

class Users::SessionsController < Devise::SessionsController 
    layout "login" 

    def after_sign_in_path_for(resource)  
    if !current_users_user.project_id 
    "/projects" 
    else 
    "/projects/#{current_users_user.project_id}" 
    end 
    end 

    def after_sign_out_path_for(resource)  
    "https://stackoverflow.com/users/login" 
    end 
end 

jede Hilfe dankbar danken!

Antwort

0

Sie können wie unten versuchen

"/projects/#{current_users_user.projects[0].project_id}" #=> projects is the table name you can replace which you have 

oder Sie müssen versuchen, die Projekte Controller

before_action :authenticate_user! 

dann zu authentifizieren, um Projekte Indexpfad nach dem Login, wo alle Projekte für den aktuellen Benutzer umleiten sie können zeige nur aktuelle Benutzerprojekte

Ich denke, wird helfen

+0

Was ih Ave funktioniert gerade .. was ich tun möchte ist nicht "projects /: project_id" Show in der URL – quincosa