我正在尝试保存一个名为persistent_data
.
我通常使用session[:persistent_data]
or cookies[:persistent_data]
,但我想改用 localstorage 。
我如何在 Rails 上做到这一点?
我正在尝试保存一个名为persistent_data
.
我通常使用session[:persistent_data]
or cookies[:persistent_data]
,但我想改用 localstorage 。
我如何在 Rails 上做到这一点?
Localstorage 与 Rails 无关。您可以像使用任何其他语言一样执行此操作:
<script>
localStorage.setItem("company_id", "1");
</script>
localStorage.getItem("company_id");
=> 1
但是,您可以使用 rails 动态设置项目:
<script>
localStorage.setItem("company_id", "<%= @company.id %>");
</script>
这很简单,需要了解本地存储的工作原理。
您可以直接执行此操作,或者(这可能更清洁)使用 setItem() 和 getItem() 方法:
localStorage.setItem('color','blue');
如果你读出颜色键,你会得到“蓝色”:
localStorage.getItem('color');`// output will be blue`
要删除项目,您可以使用 removeItem() 方法:
localStorage.removeItem('color');
烦人的事情是当你有一个数组时,它不会以正确的方式存储。
var car = {};
car.wheels = 4;
car.doors = 2;
car.sound = 'vroom';
car.name = 'Suzuki Mehran';
console.log( car );
localStorage.setItem( 'car', car );
console.log( localStorage.getItem( 'car' ) ); //output as `[object Object]`
但不必担心,我们也有解决方案。您可以使用本机 JSON.stringify() 和 JSON.parse() 方法解决此问题:
localStorage.setItem( 'car', JSON.stringify(car) );
你可以简单地把它拿回来
JSON.parse( localStorage.getItem( car ) );
希望你现在没有任何困惑!
据我所知,localStorage 与 Rails 无关,它是纯 Javascript/HTML5 功能。
您可以在应用程序 js 中使用以下内容,以便从本地存储读取或写入数据:
var foo = localStorage.getItem("bar");
localStorage.setItem("bar", foo);
正如其他人已经说过的那样,本地存储是 Javascript/Html 功能/解决方案,但如果想了解如何将其与 Rails 集成,Ryan Bates 在http://railscasts.com/episodes/248-offline-apps-part-2上有一个 railscast ,尽管您可能需要观看第 1 部分才能完全理解它。