我正在为我们的应用程序编写一个帮助程序,如果页面不是英文的话,它将返回。起初这是我的检查:
!params[:lang].nil? || !cookies[:lang].nil? || !session[:lang].nil? || !session[:locale] || !params[:locale]
(我查看了params,cookies和session)如果其中任何一个不是nil,那么我会立即得出结论,用户点击了我们的翻译链接(引入了params [:lang]并将其添加到会话和cookie。
我忘记的一件事是,如果用户切换回“en”,那么它仍然是!nil。有没有快速简便的方法/电话检查页面是否不是英文?或者我是否坚持为每个参数,饼干和会话做很多ifs以检查它们是否存在以及它们是否是英文的?
答案 0 :(得分:0)
以下是我所做的一些代码片段和一些来自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
希望它对任何人都有帮助!