阻止调用default_url_options并添加参数

时间:2018-04-09 09:33:58

标签: ruby-on-rails ruby

我设置了类似

的语言环境的default_url_options
  def default_url_options
      {
        locale: I18n.locale,

      }
  end

但在一种情况下,我想redirect_to something_url而不添加?locale=en

目前direct_to会自动添加像http://localhost/something?locale=en这样的语言环境 我想删除locale params

3 个答案:

答案 0 :(得分:1)

您可以通过在网址助手中明确将其设置为nil来阻止添加默认网址选项:

redirect_to something_url(locale: nil)

答案 1 :(得分:0)

如果en是您可以执行的默认语言环境:

def default_url_options
  {}.tap do |options|
    if I18n.locale != I18n.default_locale 
      options[:locale] = I18n.locale 
    end
  end 
end

答案 2 :(得分:0)

在上面的代码段中,只需添加

即可
def default_url_options
   I18n.locale = (url == something_url) ? nil  : I18n.default_locale
   {
    locale: I18n.locale
    }
end

此处需要根据您的应用添加url和something_url。

希望这适用于你的情况。