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!
Was ih Ave funktioniert gerade .. was ich tun möchte ist nicht "projects /: project_id" Show in der URL – quincosa