【问题标题】:Removing locale parameter from url in rails从rails中的url中删除语言环境参数
【发布时间】:2013-02-13 09:53:35
【问题描述】:

我必须使用 rails url helpers,而不是 path helpers(在某些情况下),因为我正在使用使用子域的应用程序,因此必须将 domain 选项作为参数传递。

但是这导致链接呈现为:

http://sub.domain.dev/the-page?locale=en

我尝试在应用程序控制器中使用以下变体,但无济于事:

def default_url_options(options={})
  { :locale => :en }
end

如何删除该语言环境参数?

我正在使用 RefineryCMS。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 subdomain locale refinerycms


    【解决方案1】:

    奇怪,但对于我这种情况的任何人:

    当使用带有引擎的 RefineryCMS 时,即使没有使用区域设置,并且其他引擎产生预期的 url,修复是设置:

    # config/initializers/refinery/i18n.rb
    Refinery::I18n.configure do |config|
      config.enabled = false
    end
    

    【讨论】:

      【解决方案2】:

      对于refinerycms-i18n ~> 4.0:

      # config/initializers/refinery/i18n.rb
      
      Refinery::I18n.configure do |config|
        config.url_filter_enabled = false
      end
      

      【讨论】:

        【解决方案3】:

        如果您使用的是语言环境,我建议如下:

        在你的 routes.rb 中:

        scope "(:locale)", locale: /en|br/ do
          resources :the-pages
        end
        

        在您的应用程序控制器中:

        before_filter :set_locale
        def set_locale
          I18n.locale = params[:locale]
        end
        
        def default_url_options(options={})
          { locale: I18n.locale }
        end
        

        这样,你的网址就会变成:

        http://sub.domain.dev/en/the-page
        http://sub.domain.dev/pt/the-page
        

        编辑 - 如果您不想要任何语言环境,则需要将其从应用程序控制器中删除:

        #remove the below
        def default_url_options(options={})
         { :locale => :en }
        end
        

        另外,请确保您的 routes.rb 中没有任何语言环境

        【讨论】:

        • 谢谢,我目前不需要/不想以任何方式使用语言环境 - 目前只有英语,我想完全删除该参数并拥有漂亮干净的网址...
        • 您只需将其从应用程序控制器中删除即可。我已经编辑了答案。
        • 我只是添加它以尝试以某种方式删除/更改它。它看起来也与路径助手一起发生 - 当我使用 main_app.some_route_for(object) 在引擎中查看视图时
        • 嗯,语言环境来自某个地方...检查您的 routes.rb、应用程序控制器、应用程序助手...但我相信它是在您的 routes.rb 中设置的。您还可以在代码中搜索单词 locale 以了解其设置位置。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-23
        • 2018-07-18
        相关资源
        最近更新 更多