在rspec控制器测试期间擦除参数

时间:2017-09-29 00:47:08

标签: ruby-on-rails ruby rspec

我正在为控制器操作编写测试,出于某种原因,params在到达控制器操作时正在被擦除。这就是我所拥有的:

  it 'records the event propertly' do
    post :create, params
  end

和控制器操作:

  def create
    # PARAMS IS NIL HERE
    params = params.permit(:data)
    headers['Access-Control-Allow-Origin'] = '*'
    ## DO STUFF #
    render status: :ok
  end

因此问题params在行动中为零。但是,request.params是正确的。

我在该操作之前添加了before_filter只是为了查看params哈希是否可用而且确实如此。所以有一些关于它进入该行动导致params擦拭的东西。

路线:resources :events, only: :create

1 个答案:

答案 0 :(得分:0)

问题最终是因为即使我将binding.pry放在控制器操作的顶部,在控制器中的任何地方都有params = params.permit(:data)导致params为nil。将该行分配给与params不同的变量名称可以解决问题。