Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在整个网站中保持查询的持久性_Ruby On Rails_Url - Fatal编程技术网

Ruby on rails 如何在整个网站中保持查询的持久性

Ruby on rails 如何在整个网站中保持查询的持久性,ruby-on-rails,url,Ruby On Rails,Url,我有一个rails应用程序,当用户打开我的网站时,如果他们来自电子邮件中的链接,我会在url中输入?email=true。如果url中有查询,我将显示不同的导航栏 但是,只要用户单击网站中的其他链接,查询就会消失,并显示旧的导航栏 如果查询来自电子邮件,我如何始终将其保存在那里?我建议您使用javascript并将标记保存在localStorage或sessionStorage中 const navbar = document.getElementById('navbar'); const ur

我有一个rails应用程序,当用户打开我的网站时,如果他们来自电子邮件中的链接,我会在url中输入
?email=true
。如果url中有查询,我将显示不同的导航栏

但是,只要用户单击网站中的其他链接,查询就会消失,并显示旧的导航栏


如果查询来自电子邮件,我如何始终将其保存在那里?

我建议您使用javascript并将标记保存在
localStorage
sessionStorage

const navbar = document.getElementById('navbar');
const url = new URL(location.href);
const fromMail = !!url.searchParams.get('email') || !!localStorage.getItem('fromMail');

if (fromMail) {
  localStorage.setItem('fromMail', '1');
  navbar.classList.add('email-navbar');
} else {
  navbar.classList.add('default-navbar');
}

使用浏览器的本地storageOP不想只更改类名。@Vishal那么您能告诉我如何显示不同的导航栏吗?如果模板语言的语句(如HAML或SLIM)设置了不同导航栏的部分视图,则显示条件部分您的意思是这样的吗?:不,我不是这个意思