参数嵌套在 Rspec post 请求中的参数中

Params is being nested in params in an Rspec post request

我目前正在使用 Rspec 请求测试 post 嵌套路由请求。

是这样设置的:

describe 'POST /url_contents' do
  let!(:role) { create(:role, name: "admin") }
  let(:valid_attributes) {
    {
      jwt: "SAMPLE",
      role: role
    }
  }

  context 'when the url is valid' do
    before { post "/#{role.name}/1", params: valid_attributes }

    it 'returns a status code of 201' do
      expect(response).to have_http_status(201)
    end

  end
end

我正在点击我的控制器,但是当我检查参数时,我得到了一个嵌套的参数:

:params => { :params => { :jwt => "SAMPLE", :role => #<Role:0x0055959d32a888>" }, "controller"=> "auth"... }

如何让参数指向我的控制器的 :jwt

我找到了解决方案,但很乐意听到其他想法。

context 'when the jwt is valid' do
  before { post "/#{role.name}/1", {
    jwt: "SAMPLE",
    role: role
  }
}

现在参数没有嵌套。