2016-06-21 9 views
0

私はこれを完全に調査しましたが、答えが見つからないようです。私はモデル仕様書を書いており、すべてが日常的だと思われますが、このエラーが続きます - param is missing or the value is empty: subscriber - 私は本当に何を言いたいのか分かりません。私はより明確にするために私のコードとエラーを投稿します。paramが見つからないか、値が空です: - RSpec

CONTROLLER:

def subscriber_params 
    params.require(:subscriber).permit(:first_name, :last_name, :email, :phone_number) 
end 

SPEC:

require "rails_helper" 

describe SubscribersController do 
include Devise::TestHelpers 

let(:user) { FactoryGirl.create(:user) } 
let(:subscriber) { FactoryGirl.create(:subscriber) } 

it "creates a new comment" do 
    sign_in(user) 
    comment = FactoryGirl.attributes_for(:comment) 

    expect { post :create, comment: comment }.to change(Comment, :count).by(1) 
    end 
end 

ERROR:

enter image description here

あなたが何かを確認する必要があるなら、私に教えてください。ありがとうございました!

+0

'subscriber_params'は、あなたのコントローラが' params [:subscriber] 'が存在することを期待していると定義しています。しかし、あなたの仕様では、あなたは 'コメント'だけを渡します。 'サブスクライバ 'も渡す必要があります。より正確な答えを得るためには、そのコントローラの 'create'メソッド(およびすべての' before_action's)を投稿したいかもしれません。 – spickermann

答えて

3

あなたの強力なパラメータでは、あなたは加入者を必要としていますが、あなたの要求と共に送信していません。以下を試してください:

require "rails_helper" 

describe SubscribersController do 
include Devise::TestHelpers 

let(:user) { FactoryGirl.create(:user) } 
let(:subscriber) { FactoryGirl.create(:subscriber) } 

it "creates a new comment" do 
    sign_in(user) 
    comment = FactoryGirl.attributes_for(:comment) 

    expect { post :create, subscriber: subscriber, comment: comment }.to change(Comment, :count).by(1) 
    end 
end 
関連する問題