例えば、こんな感じでRESTFULなURLでロケール情報を渡したい。
controllerを修正します。
default_url_optionsの設定は、全てのリンクに自動的にロケールを追加するためです。
vi app/controllers/application_controller.rb
class ApplicationController < ActionController::Base protect_from_forgery before_filter :detect_locale def default_url_options(options = {}) { :locale => I18n.locale } end private def detect_locale I18n.locale = params[:locale] end end
ルーティングも変更します。
vi config/routes.rb
今までのroutingをscopeで囲みます。
scope "/:locale" do devise_for :users namespace :admin do resources :users end end match '/:locale' => 'home#index' root :to => 'home#index'切り替えるスイッチはこんな感じで。
<% if params[:locale] == "ja" %> <%= link_to(t("general.en"), root_path(:locale => "en")) %> <% elsif params[:locale] == "en" %> <%= link_to(t("general.ja"), root_path(:locale => "ja")) %> <% end %>
0 件のコメント:
コメントを投稿