首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除语言环境Rails 5的URL GET参数

删除语言环境Rails 5的URL GET参数
EN

Stack Overflow用户
提问于 2017-11-26 04:49:46
回答 0查看 346关注 0票数 0

我的应用程序中有不同的语言,我使用的模式是:/:locale/some-action。我的大多数路由都在这个作用域:locale -routes.rb中:

代码语言:javascript
复制
scope "(:locale)", locale: /fr|en/ do
  root to: 'home#index'
  get 'contacts', to: 'contacts#index'
end
get 'about', to: 'about#index'

,但其中一些不是。对于这个作用域:locale中的路由,如果我使用它们的名称,比如contacts_path,Rails会根据语言环境生成路由。如果为:fr,则生成的路由为/fr/contacts

用于不在此范围内的路由。对于示例about。如果我使用它的名字about_path,并且区域设置是:fr,那么生成的URL将是/about?locale=fr,但我不希望这样。

这是application_controller.rb

代码语言:javascript
复制
class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_action :set_locale

  private
  def set_locale
    I18n.locale = params[:locale] || I18n.default_locale
  end

  def default_url_options(options={})
    { :locale => I18n.locale == I18n.default_locale ? nil : I18n.locale  }
  end
end

删除此GET参数的方法是什么,但仍然使用作用域:locale中的路由及其名称和生成的URL依赖于:locale吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47490384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档