こんにちは私は、ユーザーが多くのプロジェクトを持つことができるソフトウェアを持っています。それらのプロジェクトでは、ログインするたびにロードされる「好きな」プロジェクトを持つことができます。ダイナミックルートRuby on Rails
好きなプロジェクトがあるかどうかに関係なく、パスを「app.example.io」にしたいと思います。彼らはプロジェクトがない場合、私はパスが "app.example.io"になりたいが、それらを "プロジェクト/インデックス"に送信し、彼らが "好きな"プロジェクトを持っている場合、パスが同じ "app .example.io "しかし私はそれらを特定のプロジェクト" projects /:project_id "に送信したいと思います。
ポイント私は、お気に入りのプロジェクトがあるかどうかにかかわらず、ログインしているときにURLを常に同じにしたいと思っています。
私のルートファイルであり、私のセッションコントローラがある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
:
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
任意の助けに感謝ありがとうございました!
aveは今働いています。私がしたいことは、 "projects /:project_id"がURLに表示されていないことです – quincosa