前提・実現したいこと
RSpecのコメント投稿をテストしたいです。
記事投稿した後でコメント投稿する動作のテストです。
発生している問題・エラーメッセージ
Failure/Error: params.require(:comment).permit(:post_id, :name, :comment, :user_id) NoMethodError: undefined method `permit' for "koment":String
該当のソースコード
rails
1(comments_spec.rb) 2 describe "Comment Success" do 3 let(:user02) { FactoryBot.create(:user02) } 4 it "responds successfully" do 5 post login_path, params: { 6 email: user02.email, 7 password: user02.password, 8 } 9 get posts_index_path 10 expect(response).to have_http_status(:ok) 11 expect { 12 post posts_create_path, params: { 13 content: 'text', 14 user_id: user02.id, 15 } 16 }.to change(Post, :count).by(1) 17 post comments_path, params: { 18 comment: 'koment', 19 user_id: user02.id, 20 } 21 end 22 end 23
rails
1(comments_controller.rb) 2 def create 3 comment = Comment.new(comment_params) 4 comment.user_id = @current_user.id 5 if comment.save 6 flash[:notice] = 'Comment was posted' 7 redirect_to posts_index_path(comment.post_id) 8 else 9 redirect_to posts_index_path(comment.post_id), flash: { 10 comment: comment, 11 error_messages: comment.errors.full_messages 12 } 13 end 14 end 15 16 private 17 18 def comment_params 19 params.require(:comment).permit(:post_id, :name, :comment, :user_id) 20 end
rails
1(routes.rb) 2resources :comments, only: %i[create destroy]
試したこと
解決策がないか検索してこういう記事を見つけて試してみたのですが、attributes_forで解決策は見つかりませんでした。
RSpecでparams.require(:user).permitエラー
すみませんが、アドバイスを頂けると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/22 16:56