2014-04-30 93 views
0

在我的Rails應用程序,我有這樣的輔助函數:如何從Rails中的路徑中去除語言環境?

def frontend_section_link(title, path) 
    localized_title = t("pages.#{title}") 
    options = {} 
    options[:class] = 'current' if current_page?(path) 
    content_tag :li do 
    link_to localized_title, path, options 
    end 
end 

我使用它在我的觀點是這樣的:

<ul id="main_navigation"> 
    <%= frontend_section_link(:features, features_path) %> 
    <%= frontend_section_link(:pricing, pricing_path) %> 
    <%= frontend_section_link(:faq, faq_path) %> 
</ul> 

的問題是,它不會將用戶後,高亮菜單項剛剛切換語言(例如從德語到英語)。

我想我必須擺脫path的URL中的語言環境部分,但我不知道該怎麼做,我發現Rails的內置current_page?(path)函數只適用於區域設置包含在path中。

換句話說,上述功能只能與URL的最後一段一起工作,例如, /pricing/即使URL是其實/en/pricing/

任何人都可以幫忙嗎?

回答

1

如果您設置會話的語言環境,則可以使用該語言。你可以這樣做:

before_action :set_locale 

def set_local 
    I18n.locale = session[:locale] || I18n.default_locale 
end 

然後,當他們切換語言只是在會話上設置它。

相關問題