我正在尝试为我的rails应用程序创建一个登录页面,看起来像“www.domain.com”,当您登录时,您仍然位于域名“www.domain.com”。有没有办法可以使用路线将2个不同的动作映射到同一个URL。 Twitter这样做,你在twitter.com登录,登录后你仍然在twitter.com。
答案 0 :(得分:1)
你不能通过简单地修改路线来做到这一点,但你可以在你的控制器中做一些条件语句。
def index
if logged_in
render :action => 'show'
else
render :action => 'new'
end
end
def show
...
end
def new
...
end
当然,有很多方法可以做到这一点。
答案 1 :(得分:0)
成功登录后重定向到根URL。
<强>的routes.rb 强>
map.resources :landings
# let's assume that, home page corresponds to landings/index
map.root :controller => "landings", :action => "index"
<强> UserSessionsController 强>
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
redirect_to root_url
else
render :action => :new
end
end