2010-08-09 14 views
0

J'écris une aide pour notre application qui reviendra si la page n'est pas en anglais. Au début, cela a été mon chèque:rails vérifier si la page est traduite

!params[:lang].nil? || !cookies[:lang].nil? || !session[:lang].nil? || !session[:locale] || !params[:locale] 

(i regardé params, cookies et sessions) si aucun d'entre eux n'a pas été nulle, alors je immédiatement conclus que l'utilisateur a cliqué sur notre lien à traduire (qui Une chose que j'ai oubliée, c'est que si l'utilisateur revenait à "en", ce serait toujours! nil. Y at-il une chose rapide et facile à faire? manière/appel de vérifier si la page n'est pas en anglais? ou suis-je bloqué avec faire beaucoup de sis pour chaque params, biscuits et sessions pour vérifier s'ils existent et s'ils sont en anglais?

+0

Le code résultant n'est pas plus compliqué, juste retour! (Params [: lang] == "en" && ... && params [: local] == "en") – alternative

+0

bien je pensais que je pouvais faire avec moins ifs s'il y avait une méthode de rails pour cela. – corroded

Répondre

0

H avant est quelques extraits de code de ce que je faisais et quelques-uns de refactormycode:

http://refactormycode.com/codes/1387-too-many-ifs-and-ands

def is_english? 
    [params, cookies, session].each do |store| 
    return (store[:lang].andand.to_s == "en" || store[:locale].andand.to_s == "eng") 
    end 

    false 
end 

Hope it helps tout le monde!