将应用程序从Rails 4转换为Rails5。一切似乎都进行得很好,尽管看起来这行引起了问题。在Rails 4中,它是:
get :show, token: user.token, email: user.email
在Rails 5中,语法为:
get :show, params: { token: user.token, email: user.email }, format: :json
在这种情况下,问题是user.token
是nil
。在Rails 4下,控制器收到的参数如下:
{"token"=>nil, "email"=>"johndoe1@...", "action"=>"show"}
在Rails 5中,由于token
的接收方式为:
{"token"=>"", "email"=>"johndoe1@...", "action"=>"show"}
如何让Rails 5尊重它是null
而不是一个空字符串?
我不知道这是否会影响规范之外的get
,但我找不到任何解决方案。我尝试了as: :json
,format: :json
,甚至to_json
,也没有尝试。
谢谢
答案 0 :(得分:0)
您可以检查#blank?
。 Nil将返回true,而空字符串将返回