0
Rspecを使用して作成アクションで投稿を送信しようとしていますが、単純なコントローラロジックがあります。これはapiアプリです、私は私のrspecを実行し、それは422ステータスで返されます。私は仕様がコントローラに情報を送信しているかどうかを調べようとしています。これらは、問題のコントローラ/仕様です。どのようにして情報をcreateメソッドに挿入しますか?これまでのところ、すべてのチュートリアルでは私と同じ構文を使用しているようです。Rspecを使用して作成メソッドに投稿を送信
は、私の工場でハードコーディングさUSER_IDを無視し、事前に感謝はまだ
#post_controller
def create
if User.exists?(params[:user_id])
@post = Post.new(post_params)
@post.save
render json: @post, status: 200
else
render status: 422
end
end
#spec
it "saves a new post in the database" do
attrs = attributes_for(:post)
post :create, post: attrs
expect(response.status).to eq(200)
end
#factory
FactoryGirl.define do
factory :post do
title "This is a new title"
body "This is the body"
user_id 1
end
これは私のポストパラメータに含まれています – Byrd
はい、post_paramsには届かないので、User.exists?(params [:user_id]) – Ursus
の場合はエンドポイントにuser_idも渡します。エンドポイントを手動で正常に動作します。 – Byrd