3

highvoltage gem静的ページの提供に使用しています。それは機能していますが、URLは醜いです。現在、以下のurlようになっています。

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

しかし、私は次のようなURLにしたい:

ローカルホスト: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

この問題を解決するために今何ができるか

4

1 に答える 1

1

GitHub の問題を更新しました: https://github.com/thoughtbot/high_voltage/issues/144

GitHubの問題に投稿した手順は次のとおりです。

アプリケーション コントローラーに before フィルターを追加します。

# 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') %>

まだ問題がある場合はお知らせください。詳細を追加できます。

于 2014-07-21T17:15:28.353 に答える