gpt4 book ai didi

ruby-on-rails - rails 3 : How to tell if a user has visited a page before?

转载 作者:行者123 更新时间:2023-12-04 06:31:32 25 4
gpt4 key购买 nike

我有一个带有简单 jquery 动画的 Rails 应用程序(使用 Authlogic 进行身份验证),我只想在第一页加载时运行一次。我知道关键是检查cookies或其他东西,看看用户之前是否访问过该页面。请原谅我的无知,我对 HTTP cookie 或 session 知之甚少。

那么,查看访问用户(即使他们尚未登录)是否第一次查看页面的最佳方式是什么?

编辑:好的,所以我意识到我并不完全清楚。

我花了几个小时查看类似的问题并阅读有关 cookie 和 session 的 Rails API 文档,但我仍然无法想象如何实现 参观过? 我网站中每个页面的功能,只有在用户第一次访问该页面后才会设置为“true”。我查看了所谓的“重复”问题 Rails Detect If User's Very First Visit 和各自的答案,仍然无法弄清楚。

这是我的“页面” Controller :

def home
@title = "Home"
end

def contact
@title = "Contact Us"
end



我的 jquery javascript 做了一个简单的动画:
$(document).ready(function() 
{
if (!$.cookie('visited')) {
$('.title .flying-text').css({opacity:0});
$('.title .active-text').animate({
opacity:1,
marginTop: "-150px",
}, 5000);
}
});

我只希望它显示用户之前是否没有访问过该页面。我不知道如何在 Rails 中正确设置 cookie,也不知道把它放在哪里,也不知道如何确保动画脚本可以访问完全相同的 cookie 值。有人可以帮我一把吗?

~丹

最佳答案

您可以像这样设置 cookie:

cookies[:welcomed] = {:value => true, :expires => Time.now + 6.months}

并从 jquery 中创建一个 wee 函数
function readCookie(name) {
var nameEQ = name + "=", ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i += 1) {
var c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1, c.length);
}
if (c.indexOf(nameEQ) === 0) {
return c.substring(nameEQ.length, c.length);
}
}
return null;
}

并将其称为#in js
  if (readCookie('welcomed') == null){}

关于ruby-on-rails - rails 3 : How to tell if a user has visited a page before?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4994673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com