我有這樣的路線:重定向URL根在Rails應用程序別的地方
map.namespace 'prepayments', :path_prefix => '/:locale/prepayments' do |prepayment|
prepayment.root :controller => 'login', :namespace => 'prepayments'
...
end
map.redirect '/', :controller => 'prepayments/login' # this is not working
# I tried also
map.root :controller => 'prepayments/login'
我想獲得的是鍵入後:www.example.com會重定向我www.example。 COM/EN /預付款。
早些時候,當我用map.root
從上面的例子只是停留在www.example.com和渲染正確的觀點(但它是沒有:locale
和它的工作好),後來我加了:locale
我的路線,從這個時候我的看法(使用某種形式)無法正常工作。我得到錯誤,它無法找到相應的路徑 - 這是正確的,因爲我沒有通過任何:locale
。
那麼,如何將root重定向到另一個頁面呢?它可能會需要生成正確的路徑,並通過它通過HTTP 302 和/或如何使這樣的:
map.root :controller => 'prepayments/login', :my_locale => 'en'
編輯: 我耙路線是這樣的:
prepayments_root /:locale/prepayments {:controller=>"prepayments/login", :action=>"index"}
prepayments_create /:locale/prepayments/send_email {:method=>:post, :controller=>"prepayments/login", :action=>"send_email"}
prepayments_home /:locale/prepayments/home {:controller=>"prepayments/prepayments", :action=>"home"}
prepayments_save /:locale/prepayments/save {:controller=>"prepayments/prepayments", :action=>"save"}
prepayments_agree /:locale/prepayments/agree {:controller=>"prepayments/prepayments", :action=>"agree"}
prepayments_disagree /:locale/prepayments/disagree {:controller=>"prepayments/login", :action=>"logout"}
prepayments_payment /:locale/prepayments/payment {:controller=>"prepayments/prepayments", :action=>"payment"}
prepayments_payment_email /:locale/prepayments/payment_email {:controller=>"prepayments/prepayments", :action=>"payment_email"}
/:locale/prepayments/:uid {:controller=>"prepayments/login", :action=>"verify"}
redirect/ {:controller=>"prepayments/login", :action=>"index"}
編輯:
我試圖用Garrett提出的方式來實現它,它工作。我改變路線:
map.redirect '/', :controller => 'prepayments/login', :action => 'welcome'
,並加入控制器歡迎方法:
def welcome
redirect_to prepayments_root_path(:locale => 'en')
end
和它的作品,因爲我想(所以它在我的瀏覽器更改URL)。
另一種方式是改變這樣的路線:
map.root :controller => 'prepayments/login', :locale => 'en'
它也可以,但它不是重定向(它不會改變瀏覽器URL)。我不確定是否有這樣的選項,如map.redirect
。我在www的例子中發現它,但我也發現添加這樣的功能的插件。
感謝您的幫助!
但如何補充一點:語言環境參數redirect_to的prepayments_root_path? – klew 2010-01-14 18:29:24
我知道我可以用一些字符串前加入,但有一個更好的辦法嗎? – klew 2010-01-14 18:30:17
你可以給你的'rake routes'輸出嗎? – Garrett 2010-01-14 18:33:35