ruby-on-rails - Controller 规范未知关键字 : id

标签 ruby-on-rails ruby rspec ruby-on-rails-5 rspec-rails

我有简单的 Action 表演

def show
  @field = Field.find_by(params[:id])
end

我想为它写规范

require 'spec_helper'

RSpec.describe FieldsController, type: :controller do

    let(:field) { create(:field) }

  it 'should show field' do
    get :show, id: field
    expect(response.status).to eq(200)
  end
end

但是我有一个错误

Failure/Error: get :show, id: field

 ArgumentError:
   unknown keyword: id

如何解决?

最佳答案

HTTP request methods will accept only the following keyword arguments params, headers, env, xhr, format

根据新的 API,您应该使用关键字参数,在这种情况下为 params:

  it 'should show field' do
    get :show, params: { id: field.id }
    expect(response.status).to eq(200)
  end

关于ruby-on-rails - Controller 规范未知关键字 : id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43797133/

相关文章:

ruby-on-rails - 在 heroku 上部署 Rails 失败,出现 NameError : wrong constant name [[:error, ["detected unsupported rails version 6.0.1"], nil]]

ruby-on-rails - 如何覆盖 ActiveRecord 模型中的 getter 方法?

ruby - 在 Ruby 中将整数转换为二进制

ruby-on-rails - 使用 Bullet 和 RSpec gem 减少 n+1 查询

ruby-on-rails - 如何为登录编写 Omniauth RSpec?

ruby-on-rails - 如何更换Rails 3上的夹具生成器?

ruby-on-rails - 获取 ActiveRecord::StatementInvalid:重命名模型后找不到表

ruby - 升级 chefdk ruby​​ 版本

ruby - 从 'cat' 输出着色 ruby​​ 语法

ruby-on-rails - 在 FactoryGirl 中的关联设置属性中传递参数