Je suis le guide de railscast mais pour une raison quelconque, lorsque je clique sur un lien, les paramètres régionaux ne sont pas reportés.I18n cliquant sur le lien de barre de navigation par défaut Retour à l'anglais
Voici mon routes.db
Rails.application.routes.draw do
scope ":locale", locale: /#{I18n.available_locales.join("|")}/ do
get 'welcome/index'
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
root 'welcome#index'
resources :foods
resources :shops
resources :communities
resources :events
resources :pictures
resources :videos
resources :services
end
get '*path', to: redirect("/#{I18n.default_locale}/%{path}")
get '', to: redirect("/#{I18n.default_locale}/")
Je pense que la principale différence entre mon application et les Railscasts est que je fais sur le modèle de application.html.erb. Je me demande donc si cela l'affecte.
Merci pour votre temps!
EDIT:
contrôleur d'application
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_action :set_locale
private
def set_locale
I18n.locale = params[:locale] if params[:locale].present?
end
def default_url_options(options = {})
{locale: I18n.locale}
end
end
EDIT:
<li><a href="/foods"><i class="fa fa-cutlery" aria-hidden="true"></i> <%= t('layouts.application.food') %><span class="sr-only">(current)</span></a></li>
Pourriez-vous afficher exactement le 'link_tag' qui 'ne porte pas sur les paramètres régionaux'? Je suppose que vous ne le passez pas à votre méthode url helper, e..g 'blah_path' au lieu de' blah_path (locale:: es) '. –
@JanBussieck J'ai ajouté l'étiquette de lien. Merci. –
Ok, regardez ma réponse ci-dessous. Utilisez url et route helpers comme si 'link_to" Foods ", foods_path', dans votre cas, vous ne passez pas dans les paramètres régionaux comme paramètre url. –