2012-11-16 27 views
2

我需要重寫params[:lang]貫穿我的整個應用程序從enus-english。從URL應該是en但我的整個應用程序內它需要us-english,當我再創建URL我需要它從us-english再次轉換爲enRails的請求替代PARAMS

我意識到,實際的解決方案是隻更新網址,以反映實際的應用,但這個決定是在我的掌握。

+0

確實沒有更好的辦法處理這個?爲什麼你不能使用'en'?你什麼時候想要重寫它,你想要解決什麼問題?如果您想獲得幫助,您需要提供更多詳細信息。 – Andrew

+0

看看i18n的回退,如果這聽起來像是真正的問題 – prusswan

回答

2

在應用控制器:

before_filter :override_params 


def override_params 
    params[:lang] = 'us' if params[:lang] == 'en' 
end 


def render(*args) 
    params[:lang] = 'en' if params[:lang] == 'us' 
    super 
end 

雖然,安德魯評論說,可能會有更好的辦法s到實現你想實現什麼,

+0

這意味着任何'param [:lang]'變成'us'。也不知道這響應URL的問題,但我認爲他需要手動指定郎每次帕拉姆反正因爲大多數'link_to'等等都不會默認包含... – Andrew

+0

PARAMS呀,你是對的 - 我錯過了那部分。我已經更新了這個要求的答案。我認爲en是來自url,但是誰知道...... –

+0

我得到了這個很遠,但是這並沒有解決更新創建的URL以反映反向邏輯的更大問題。 – user1828575