ruby-on-rails 我需要编写规范来检查创建操作和获取错误的允许参数

ykejflvf  于 2023-01-14  发布在  Ruby
关注(0)|答案(1)|浏览(123)

我需要写规范来检查创建操作允许的参数。

module Backoffice
  class JobsController < BaseController
    def create
      @job = Job.new(job_params)
    end
    def job_params
      params.require(:job).permit(:title)
    end
  end
end

RSpec.describe Backoffice::JobsController, type: :controller do
  it do
    params = {
      job: {
        title: 'John'
      }
    }
    should permit(:title).
      for(:create, params: params).
      on(:job)
  end
end

出于某种原因,我得到:
需要POST #create将:job上的参数限制为:title,但它没有限制任何参数。
是因为模块中的控制器吗?

bfnvny8b

bfnvny8b1#

这是因为您的参数不应该是散列,这些参数来自ActionController::Parameters。

let(:params) do
    ActionController::Parameters.new({
      job: {
        title: 'John'
      }
    })
  end

相关问题