【问题标题】:How do I save data on LocalStorage in Ruby on Rails 3.2.8?如何在 Ruby on Rails 3.2.8 中的 LocalStorage 上保存数据?
【发布时间】:2012-10-09 18:31:13
【问题描述】:

我正在尝试保存一个名为 persistent_data 的变量。

我通常使用session[:persistent_data]cookies[:persistent_data],但我想改用本地存储。

如何在 Rails 上做到这一点?

【问题讨论】:

  • 我知道 LocalStorage 与 Rails 无关,但如果有 gem 或其他东西可以让我们像使用 cookie 一样直接将内容存储到 LocalStorage。

标签: ruby-on-rails ruby html local-storage session-variables


【解决方案1】:

Localstorage 与 rails 无关。您可以像使用任何其他语言一样执行此操作:

<script>
localStorage.setItem("company_id", "1");
</script>

localStorage.getItem("company_id");
=> 1

您可以使用 rails 来动态设置项目:

<script>
localStorage.setItem("company_id", "<%= @company.id %>");
</script>

【讨论】:

    【解决方案2】:

    这很简单,需要了解本地存储的工作原理。

    您可以直接执行此操作,或者(这可能更简洁)使用 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 ) );
    

    希望你现在没有任何困惑!!!

    【讨论】:

      【解决方案3】:

      据我所知,localStorage 与 Rails 无关,它是纯 Javascript/HTML5 特性。

      您可以在应用程序 js 中使用以下内容从本地存储读取或写入数据:

      var foo = localStorage.getItem("bar");
      localStorage.setItem("bar", foo);
      

      【讨论】:

        【解决方案4】:

        正如其他人已经说过的那样,本地存储是 Javascript/Html 功能/解决方案,但如果想了解如何将其与 Rails 集成,Ryan Bates 在http://railscasts.com/episodes/248-offline-apps-part-2 有一个 railscast,尽管您可能需要观看第 1 部分才能完全理解它.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-11-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多