【问题标题】:high voltage gem routing with locale带语言环境的高压 gem 路由
【发布时间】:2013-11-17 13:28:08
【问题描述】:

我正在使用highvoltage gem 进行静态页面服务。它的工作,但网址是丑陋的。目前url 如下所示:

localhost:3000/pages/terms-and-conditions?locale=en

但我希望网址如下所示:

localhost:3000/en/pages/terms-and-conditions

在我的路线文件中我写了

scope ":locale", locale: /en|bn|hi/ do
  match "pages/:id" => 'pages#show', :as => :page, :format => false
end

然后在视图中我写道:

<%=link_to "Terms & Conditions", page_path(:id=>'terms-and-conditions')%>

在我写的页面控制器中

  def show
    render params[:id]
  end

我现在可以做些什么来解决这个问题

【问题讨论】:

标签: ruby-on-rails ruby routes high-voltage


【解决方案1】:

我在 GitHub 上更新了问题: https://github.com/thoughtbot/high_voltage/issues/144

这是我在 GitHub 问题上发布的说明:

为您的应用程序控制器添加一个前置过滤器

# app/controllers/application_controller.rb
before_action :set_locale

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

禁用默认的高压路由

# config/initializers/high_voltage.rb
HighVoltage.configure do |config|
  config.routes = false
end

使用区域设置路由文件设置嵌套 URL

# config/routes.rb
scope "/:locale", locale: /en|bn|hi/ do
  get "/pages/:id" => 'high_voltage/pages#show', :as => :page, :format => false
end

向网站添加页面

# app/views/pages/about.html.erb
<%= t 'hello' %>

确保有对应的语言环境文件

/config/locale/en.yml
/config/locale/bn.yml

最后一点是know issue 带有高压。

你需要像&lt;%= link_to 'About Us', page_path(id: 'about') %&gt;这样指定路由

如果您对此仍有疑问,请告诉我,我可以添加更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 2020-03-29
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多