JSON 参数在规范中作为空字符串而不是 nil 发送

I. *_*han 6 ruby-on-rails rspec-rails ruby-on-rails-5

将应用程序从 Rails 4 转换为 Rails 5。一切都很顺利,尽管这条线似乎引起了问题。在 Rails 4 中,它是:

get :show, token: user.token, email: user.email
Run Code Online (Sandbox Code Playgroud)

对于 Rails 5,语法是:

get :show, params: { token: user.token, email: user.email }, format: :json
Run Code Online (Sandbox Code Playgroud)

这种情况下的问题user.tokennil。在 Rails 4 下,控制器接收如下参数:

{"token"=>nil, "email"=>"johndoe1@...", "action"=>"show"}
Run Code Online (Sandbox Code Playgroud)

对于 Rails 5,现在一些测试失败,因为token收到的消息如下:

{"token"=>"", "email"=>"johndoe1@...", "action"=>"show"}
Run Code Online (Sandbox Code Playgroud)

我怎样才能让 Rails 5 尊重它null而不是空字符串?

我不知道这是否会影响get规范之外的内容,但我找不到任何解决方案。我尝试过as: :json,以及format: :json,甚至to_json,什么也没有。

谢谢