Высоковольтная маршрутизация драгоценных камней

Я использую highvoltage gem для статического показа страниц. Это работает, но URL уродлив. В настоящее время url это как ниже:

локальный:3000/ страниц / термины-и-условия локаль = еп

Но я хочу, чтобы URL был как ниже:

LOCALHOST:3000/ EN / страницы / термины и-условия

В моем файле маршрутов я написал

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

что я могу сделать сейчас, чтобы решить эту проблему

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

Последнее замечание: есть известная проблема с высоким напряжением.

Вам нужно будет указать маршруты, как это <%= link_to 'About Us', page_path(id: 'about') %>

Дайте мне знать, если у вас все еще есть проблемы с этим, и я могу добавить еще некоторые детали.

Другие вопросы по тегам