javascript - Rails 3 设备 : destroy localStorage and sessionStorage when logout?

标签 javascript ruby-on-rails-3 devise ruby-on-rails-3.2 rubygems

我正在使用 Rails 3 设备,并且创建了一些 HTML 5 网络存储。现在,如果用户单击注销链接,我想显示一条确认消息。如果用户单击“确定”按钮,我想将 sessionStorage 值设置为 null,现在用户将从应用程序中注销。

我正在继承设计 session Controller ,例如:

 class SessionController < Devise::SessionController
   def destroy
     # code ?
   end
 end

实际上我可以使用 javascript 代码将 sessionStorage 值设置为 null:

<script>
  $(document).ready(function(){
    if(confirm("Are you sure want to logout?")){
        sessionStorage.value = null;
    }
    return false;
  })
</script>

但是当用户单击注销链接时,我如何实现此代码?如何解决这个问题?

最佳答案

您可以通过重定向注销方法来执行 Javascript 操作。例如:

def destroy
    // ... other actions...
    redirect_to destroy_localstore_path  
end

def destroy_localstore
end

在你的 destroy_localstore.js.erb...

sessionStorage.value = null;

关于javascript - Rails 3 设备 : destroy localStorage and sessionStorage when logout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18010363/

相关文章:

javascript - 使用 Meteor session 切换模板

javascript - 正则表达式匹配字符的所有实例,除非后跟数字或单独存在

ruby-on-rails - 延迟作业给出未定义的方法错误

ruby-on-rails-3 - 没有方法 error_messages selenium 和 capybara-webkit

javascript - 在 Rails 中通过 JS 设计注册#update

javascript - 如何将 css 类名称添加到 Squarespace 中的文本 block ?

ruby-on-rails - Ruby on Rails : Polymorphic Association with Nested Attributes, 字段未显示

ruby-on-rails - Devise 和 Cancancan - 如何让它发挥作用?

devise - Devise::Mailer的设置-散居者smtp_envelope_from和smtp_envelope_to sendmail

javascript - 使用 $.post 将 javascript 数组传递到 c# 数组/列表,而不将数据类型指定为 json