如何在application_controller中调用方法?

时间:2017-03-01 17:18:37

标签: ruby-on-rails

我的应用程序控制器中有这个方法:

before_action :set_locale

def set_locale
    locale = params[:locale].to_s.strip.to_sym
    I18n.locale = I18n.available_locales.include?(locale) ?
    locale :
        I18n.default_locale
end

def set_locale_or_redirect
    unless no_locale_needed?
       if params[:locale].present?
           @current_locale = I18n.locale = params[:locale]
       else
           redirect_to locale: 'fr'
       end
    end
end

我想做的是在layouts/mylayout.html.erb(我的导航菜单中也有)指向当前网址的链接,但在params中设置区域设置并调用set_locale

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您需要指向当前页面的链接。这个快速的小黑客可能适合你

link_to 'English', url_for('?locale=eng')

答案 1 :(得分:0)

这是解决方案:

<%= link_to 'nl', url_for( :locale => 'nl') %>