2016-07-14 32 views
0

我想通過添加「?lang = xx」到當前URL來通過查詢添加語言修飾符。如何將參數添加到當前URL?

我目前使用的是這樣的:

=link_to request.request_parameters.slice(:lang).merge(lang: 'en') 

這是好的,但它增加了「迎/索引」或對應的路線,當我使用定製的路線,這是不是偉大的共享鏈接。

我也試過這樣:

=link_to "#{request.path}/?lang=en" 

簡單,它的工作原理,但不會讓我刪除不需要的參數。

我在某處讀到其中有一個應該不包含「welcome/index」的地方,我已經試過request.query_parametersrequest.request_parameters,當我在網站的根目錄上做某些事情時,都包含'welcome/index' 。

我可以在自定義路線中添加條件並移除控制器和操作,但我認爲這是不必要的工作。

有沒有一個乾淨的方式來做到這一點,而不是過度工程解決方案?

我目前在Rails 4.2.5上,並且想升級到5.0。

回答

0

猜猜我不得不對它進行過度工程化。這是我能想到的最簡單的實現:

修身:

=link_to_if request.path == '/', 'Home', root_path(lang: :en) do 
    =link_to 'Not Home', request.request_parameters.slice(:lang).merge(lang: 'en') 

我知道這是兩行,我只是恨添加更多的代碼比它會顯得必要。