Voiko tämän kirjoittaa lyhyemmin?
if params[:lang] == 'fi' or params[:lang] == 'en' or params[:lang] = 'se'
session[:lang] = lng = params[:lang]
elseif session[:lang]
lng = session[:lang]
else
session[:lang] = lng = 'en'
end
if params[:lang] == 'fi' or params[:lang] == 'en' or params[:lang] = 'se'
session[:lang] = lng = params[:lang]
elseif session[:lang]
lng = session[:lang]
else
session[:lang] = lng = 'en'
end
Vastaukset 5
Vanhimmat
langs = ['fi','en','se']
if langs.include?(params[:lang])
session[:lang] = lng = params[:lang]
elseif session[:lang]
lng = session[:lang]
else
session[:lang] = lng = 'en'
end
session[:lang] = lng = params[:lang] if params[:lang] (säännöllinen lauseke) else lng = session[:lang] || 'en'
session[:lang] = lng = params[:lang] if params[:lang] and params[:lang].match (/fi|en|se/) else lng = session[:lang] || 'fi'
Jos joku saa vielä lyhyemmäksi, niin nostan hattua :)
Tuo match ei tarkista, että parametri on täsmälleen esim. 'en' eikä vaikka 'eng' tai 'englanti' joten se voi asettaa väärän arvon.
Miten korjataan?
Aapuja??