【发布时间】:2020-04-08 17:01:04
【问题描述】:
我尝试检查我的令牌是否有错误, 在我看来,它是这样工作的,而且似乎还可以:
<% if @token['error'].present?%>
<%= @token['error']%> // display the message of the error
<%= flash[:error]%> //display ERROR
<% else %>
<%= @token%> // display the token
<p>Ok</p>
<%end%>
但在我的控制器中,我不能这样做:
if @token['error'].present?
flash[:error] = "ERROR"
else
@token = HTTParty.post('https://mooncard23-sandbox.biapi.pro/2.0/auth/token/access',
body: {
client_id: XXXXXXXXXX,
client_secret: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
code: @decoded_code
}
)
end
我有错误“nil:NilClass 的未定义方法 `[]'”。 你知道如何检查我的令牌是否返回错误吗?
【问题讨论】:
-
表示
@token是nil。在您的控制器中,@token最初来自哪里?如果它是HTTParty.post(...)的结果,您当然可以在获取它之前不对其进行检查。在这种情况下,将支票移到post调用之后 / 应该可以工作。 -
感谢您的回答。是的,@token 是 HTTParty.post(...) 的结果。问题是我只想在用户登陆我的页面后才执行 HTTParty.post,而不是在他返回该页面时执行。如果他回到这个页面,我有错误
-
为此,您必须将令牌存储在其他地方。也许在用户的会话中,即通过 cookie?
-
是的,我的令牌存储在 LocalStorage 中。但是我可以访问 Ruby 中的 LocalStorage 吗?
-
与 cookie 数据不同,浏览器在请求页面时不会将本地存储数据传输到服务器。因此,除非您从客户端显式发送数据,否则服务器不会意识到这一点。
标签: ruby ruby-on-rails-3 ruby-on-rails-4 hash