2009-06-16 86 views
0

我正在開發一個rails應用程序,並有一個問題。rails redirect_to問題

在我的routes.rb:

map.connect 'admin', :controller => "/admin/users", :action => "index"

所以,當我去 「http://mydomain.com/admin」,它重定向到 「http://mydomain.com/admin/users/index」。 但是,地址仍爲「http://mydomain.com/admin」。 因此,頁面中的鏈接是錯誤的,因爲它們是基於「http://mydomain.com/admin」創建的。

這個問題的解決方案是什麼?在控制器=>「管理/用戶

回答

0

您的代碼沒有進行重定向瀏覽器,它只是建立/ admin和/管理/用戶觸發同樣的操作。

你可以嘗試:

map.connect 'admin', :controller => "/admin/users", :action => "redirect_to_index" 

然後在你的控制器寫:

def redirect_to_index 
    redirect_to :action => :index 
end 

這將重定向發送到瀏覽器,使其顯示正確的URL。

希望有一個更好的方法,只涉及routes.rb。此網站可能會有所幫助 - >redirect-routing-plugin-for-rails

1

試試這個:

map.connect '管理/:動作/:身份證',該頁面以/開始,並使用完整路徑。通常,您應該使用Rails路由方法在可能的情況下生成鏈接。使用image_tagstylesheet_link_tag助手也一樣。

因此,如果您有「privacy.html」鏈接,請將其更改爲「/privacy.html」,無論您在哪個路徑結構中,您都應該一切順利。當您開始將視圖代碼提取到可重用部分時,這非常好。