2013-07-16 51 views
0

我對Ruby很新,可能做的不正確,但如何使一個控制器操作沒有路由?控制器在軌道上的紅寶石軌跡沒有路徑 - 有可能嗎?

我需要此控制器僅用於其他控制器的REDIRECT。 見下面

def redirect_to_correct_stage 
case @lession_stats.stage 
    when 'stage1' 
    puts "Redirecting to stage1" 
    redirect_to :action => :stage1 
    return 
    when 'stage2' 
    puts "Redirecting to stage2" 
    redirect_to :action => :stage2 
    return 
    when 'stage3' 
    puts "Redirecting to stage3" 
    redirect_to :action => :stage3 
    return 
    else 
    redirect_to root_path, :alert => t(:error_unknown_stage) 
end 

我的主要作用是redirect_to_correct_stage,並有正確的路徑(「/字」)和我需要重定向改正基於模型的價值的行動。

一切正常,但現在人可以直接移動到stage3使用('/ stage3') 當然,我可以添加更多的檢查stage3行動,但我不想檢查兩次。

我該怎麼辦?

+0

如果你只需要調用額外的邏輯來說'stage2',那麼爲什麼不在你的控制器上有一個受保護的方法,調用它,然後在控制器方法的末尾相應地重定向 –

回答

2

控制器操作是一種帶有路由的方法,該路由是您的應用程序的入口點。如果您確實要添加一個沒有路由的方法,則不能使用Web請求調用該方法。