相关疑难解决方法(0)

尝试获取POST以返回400错误请求

我有一个通过关联构建新模型的create方法,如果POST请求中没有params,我希望它返回带有一些文本的400响应.但是,我收到一个错误.

这是在Rails 4.0.2中

控制器方法:

  def create
    @cast_profile = current_user.build_cast_profile(cast_profile_params)
    if @cast_profile.save
      redirect_to cast_profile_path
    else
      render :edit
    end
  end

  def cast_profile_params
    params.require(:cast_profile).permit(:name, :email, :public)
  end
Run Code Online (Sandbox Code Playgroud)

如果我通过params它很好,但我正在尝试测试错误的请求方案.这是错误:

ActionController::ParameterMissing: param not found: cast_profile
Run Code Online (Sandbox Code Playgroud)

我可以明确地拯救它,但我认为强大的参数应该自动完成.

strong-parameters ruby-on-rails-4

24
推荐指数
1
解决办法
2万
查看次数

RSpec - 测试强参数ActionController :: ParameterMissing

如何测试某个动作是否会引发ActionController::ParameterMissing异常?

例如:

it "raises an exception" do
  post :create, {}
  expect(response).to raise ActionController::ParameterMissing
end
Run Code Online (Sandbox Code Playgroud)

以上似乎不起作用,它将失败测试与ActionController::ParameterMissing异常.

rspec ruby-on-rails strong-parameters

1
推荐指数
1
解决办法
3098
查看次数