如何从 Ruby 变量存储在 Javascript 中的 localStorage 中



我尝试从 ruby 变量将令牌存储在我的本地存储中, 据我了解,您只能使用 Javascript 设置 LocalStorage, 所以我的问题来了,如何将我的变量从 Ruby 传递到 Javascript?我在视图中看到了一些带有脚本标签的答案,但是有什么解决方案可以直接在应用程序.js文件夹中执行此操作?

所以这是我的控制器:

@token = HTTParty.post('https://test.pro/2.0/auth/token/access', 
body: {
client_id: XXX,
client_secret: "YYYYYYYYYYYYYY",
code: LLLLLL
}
)

在我看来,如果我做一个 <%= @token %>,我会得到以下结果:

{"access_token": "1VwCAjhsfCsdEoBoQs1G9kLHKoWOcJjamyj1s8_NQPrHeGNagzYYFrXKp_VlY", "token_type": "Bearer"}

感谢您的帮助!

如果你想从ruby文件中执行javascript,你可以使用javascript_tag:

https://apidock.com/rails/ActionView/Helpers/JavaScriptHelper/javascript_tag

如何使用它的示例:

在 JavaScript 中访问 Ruby 对象

在您的情况下,您视图中的内容如下:

<% javascript_tag do %>
localStorage.setItem('accessToken', <%= @token["access_token"] %>);
localStorage.setItem('tokenType', <%= @token["access_token"] %>);
<% end %>

应该做这个技巧

最新更新