【发布时间】:2014-12-19 13:03:59
【问题描述】:
我的 html.erb 中有这样的脚本:
if(browser == "Firefox") {
$(".browser-warning").show();
}
else if(browser == "Safari") {
if(browser.version < 6) {
$(".browser-warning").show();
}
}
else if((BrowserDetect.browser != "Chrome") && (<%= params[:section_id].to_s %> != '')) {
console.log('yo');
<%= session[:is_chrome] = false %>
<%= Rails.logger.debug = "I made is_chrome false, wtf?" %>
}
else {
$(".browser-warning").show();
}
我正在从 Chrome 浏览器运行此脚本并且条件返回 false。
但 session[:is_chrome] 总是变为 false 并且 Rails 记录器返回“我将 is_chrome 设为 false,wtf?”。 但。 JS 控制台记录器不在控制台中打印“yo”。 为什么会这样,只有当 JS “if” 语句为真时才定义会话值的正确方法是什么?
谢谢大家。
【问题讨论】:
-
您是否尝试根据客户端上的值评估服务器上的某些内容?
-
@Mathletics 是的,我是。
-
是的,你不能那样做,你知道吗?因为在浏览器中运行 JS 时,Ruby 已经在服务器上进行了评估。
标签: javascript ruby-on-rails ruby conditional-statements