2页使用相同的URL使用rails路由

时间:2010-03-15 20:48:23

标签: ruby-on-rails routes

我正在尝试为我的rails应用程序创建一个登录页面,看起来像“www.domain.com”,当您登录时,您仍然位于域名“www.domain.com”。有没有办法可以使用路线将2个不同的动作映射到同一个URL。 Twitter这样做,你在twitter.com登录,登录后你仍然在twitter.com。

2 个答案:

答案 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