に一致し、それは私に与えている:RSpecのレール:IDを持つポストを見つけることができませんでし取得/いいえルートは、私はRSpecので<code>create</code>アクションをテストしてい
のActiveRecord :: RecordNotFound: がでポストを見つけることができませんでした ' id '=:post_id
わからない理由は何ですか?
スペック:
describe CommentsController do
it "#create" do
post1 = create(:post)
post :create, comment: attributes_for(:comment, post_id: post1.id)
p Comment.count
end
end
createアクション:
def create
@comment = @post.comments.build(comment_params)
@comment.user_id = current_user.id
respond_to do |format|
if @comment.save
format.json { render json: @comment }
end
end
end
アクション前:
before_action :authenticate_user!
before_action :find_post, only: [:index, :create, :destroy]
のルート:私は、問題は、あなたがのparamsでpost_id
を送信していないと思い
describe CommentsController do
it "#create" do
post1 = create(:post)
post :create, { post_id: post1.id, comment: attributes_for(:comment, post_id: post1.id) }
p Comment.count
end
end
:
post_comments GET /posts/:post_id/comments(.:format) comments#index
POST /posts/:post_id/comments(.:format) comments#create
post_comment DELETE /posts/:post_id/comments/:id(.:format) comments#destroy
いくつかのstacktraceと 'find_post'メソッドを共有してください。 –