在我的应用程序中,我使用的是Devise身份验证gem,它确实运行良好。我还建立了一个静态登录页面,该页面当前位于/public
目录中。
我当然可以浏览到localhost:3000/landing
并查看页面(按照下面的路线),但是我想实现的目标却似乎无法弄清楚如何设置我的routes.rb
文件因此landing.html
文件是根目录,但是当用户登录时,他们的根目录将变成companies#index
。
任何帮助,不胜感激!
这是我的routes.rb文件
Rails.application.routes.draw do
devise_for :users
get 'dashboard/index'
get '/landing', :to => redirect('/landing.html')
root 'companies#index'
resources :companies do
resources :shareholders
resources :captables do
post :subscribe_to_captable
resources :events do
post :lock_event
post :unlock_event
resources :transactions
end
end
end
end
这是我的application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :authenticate_user!
end
答案 0 :(得分:1)
一种方法是将重定向放入您的CompaniesController.rb
index
方法中。
CompanesController.rb(或任何被称为)
def index
unless user_signed_in?
redirect_to landing_pages_path (or whatever the name of the route is)
end
end
然后在routes.rb
文件中更改路由。
get '/landing', to: 'companies#landing' * change companies here to the name of the controller holding the landing page's method if it is not in the companies controller.