2017-05-05 33 views
20

我有简单的动作表演控制器规格未知的关键字:ID

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 

如何修理它?

回答

69

HTTP请求方法将只接受以下关键字参数 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 
+0

THX它的工作原理现在 – user

+6

我从Rails 4.2升级到Rails 5.1后出现此错误开始,并修正了这个问题 - 谢谢! –

+0

看起来它也接受格式: – kwerle