我有一个非常简单的问题要问。如何在我的网址中屏蔽控制器?我想要这样,以便我可以显示一个干净的域,无论用户是否登录(不同的控制器)。
我的routes.rb
root :to => "users#index"
get 'home', to: 'home#index'
我的Users_controller.rb
class UsersController < ApplicationController
def index
#@users = User.all
if session[:user_id]
...
else
redirect_to '/home'
end
end
end
目前,如果用户已登录,则root_path为http://www.mydomain.com(这很好!)。
但是,如果用户未登录,则root_path为http://www.mydomain.com/home。我想删除'/ home'。
答案 0 :(得分:0)
您可以同时拥有一个唯一的网址。
def index
if session[:user_id]
...
else
#redirect_to '/home'
render 'a_page' #this will ensure separate page with same url
end
end
答案 1 :(得分:0)
您可以在routes.rb文件中使用约束
# User is logged in
constraints(lambda { |request| !request.session[:user_id].blank? }) do
root :to => "users#index"
end
# User is not logged in
root :to => "home#index"