2016-07-18 1 views
0

Je ne fais que commencer avec Rails et je suis un peu confus sur la façon dont je définirais une variable pour une session.Comment définir une variable pour une session dans Rails?

Dans mon application, je souhaite qu'un utilisateur puisse choisir l'anglais ou le français et, lorsqu'il clique sur un article, il l'affiche dans la langue sélectionnée.

S'ils sélectionnent l'anglais, ils sont enregistrés en tant que 'Preferred_lang'. Cependant, ils peuvent le changer à tout moment.

En ce moment, j'ai cette condition au début des articles afficher la page:

- if current_user.preferred_lang = 'English' 
    = render 'english' 
- else 
    = render 'french' 

Il ne semble pas très efficace pour moi. Est-il possible de définir "current_language" au début de la session, puis de le mettre à jour si l'utilisateur le change?

+0

Pas efficace? Que voulez-vous dire, la ramification? Pourquoi pas efficace? –

+0

Cela me semblait être ça. Peut-être que je me trompe, mais apprendre à faire quelque chose comme ça ne serait pas nocif. –

Répondre

0

C'est juste une clé, paire de valeurs (Hash). Donc, vous pouvez le configurer comme ceci:

session[:preferred_lang] = @current_user.preferred_lang 

vous pouvez alors l'utiliser:

if session[:preferred_lang] 
    # I found a previously set preferred_lang 
else 
    # No previously set prefferd_lang 
end 

Ensuite, vous pouvez le mettre à jour à tout moment et supprimer si vous le souhaitez.