【问题标题】:How to check if I have some error in my hash如何检查我的哈希是否有错误
【发布时间】: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 的未定义方法 `[]'”。 你知道如何检查我的令牌是否返回错误吗?

【问题讨论】:

  • 表示@tokennil。在您的控制器中,@token 最初来自哪里?如果它是HTTParty.post(...) 的结果,您当然可以在获取它之前不对其进行检查。在这种情况下,将支票移到 post 调用之后 / 应该可以工作。
  • 感谢您的回答。是的,@token 是 HTTParty.post(...) 的结果。问题是我只想在用户登陆我的页面后才执行 HTTParty.post,而不是在他返回该页面时执行。如果他回到这个页面,我有错误
  • 为此,您必须将令牌存储在其他地方。也许在用户的会话中,即通过 cookie?
  • 是的,我的令牌存储在 LocalStorage 中。但是我可以访问 Ruby 中的 LocalStorage 吗?
  • 与 cookie 数据不同,浏览器在请求页面时不会将本地存储数据传输到服务器。因此,除非您从客户端显式发送数据,否则服务器不会意识到这一点。

标签: ruby ruby-on-rails-3 ruby-on-rails-4 hash


【解决方案1】:

在您看来没问题,因为您已分配了@token。试试:

if @token && @token['error']

【讨论】:

    猜你喜欢
    • 2017-04-28
    • 2016-10-29
    • 2019-12-02
    • 2011-05-19
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2017-04-13
    • 2013-11-22
    相关资源
    最近更新 更多