前提・実現したいこと
Railsでupdateアクションを実行しようとしたところNoMethodError (undefined method `permit'
というエラーが出てしまいました。解決方法を調べましたがわからなかったので質問させていただきます。
発生している問題・エラーメッセージ
api_1 | Processing by Api::V1::PostsController#update as HTML api_1 | Parameters: {"post"=>[{"content"=>"追加でテストします", "status"=>false}], "id"=>"16"} api_1 | Post Load (7.7ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = $1 LIMIT $2 [["id", 16], ["LIMIT", 1]] api_1 | ↳ app/controllers/api/v1/posts_controller.rb:23:in `update' api_1 | Completed 500 Internal Server Error in 114ms (ActiveRecord: 71.3ms | Allocations: 7456) api_1 | api_1 | api_1 | api_1 | NoMethodError (undefined method `permit' for #<Array:0x000056147d1e7c00>): api_1 | api_1 | app/controllers/api/v1/posts_controller.rb:39:in `content_params' api_1 | app/controllers/api/v1/posts_controller.rb:24:in `update'
該当のソースコード
Rails
1def update 2 post = Post.find(params[:id]) 3 post.post_items.update(content_params) 4 end 5 6 7 private 8 def content_params 9 params.require(:post).permit(:id,:content, :status) 10 end 11 12 def post_params 13 params.require(:post).permit(:title, :author, :image, post_items_attributes: [:id, :content, :status]) 14 end 15
javaScript
1 2update (context) { 3 // Railsに送る配列 4 const list = context.state.todos.list 5 //送り先IDを取得 6 const bookId = context.state.book.selectedBook.id 7 8 //Railsに送るデータを取り出し 9 const post = 10 list.map((item) => { 11 return { 12 content: item.content, 13 status: false 14 } 15 }) 16 17 this.$axios.$patch(url.POST_API + 'posts/' + bookId, { 18 post 19 }) 20 }
試したこと
・undefined method `permit
について調べましたが、createの時に同じようにpermitを使用していたのでエラーの原因がわかりませんでした。
補足情報(FW/ツールのバージョンなど)
Rails 6
Nuxt 2.15
回答3件
あなたの回答
tips
プレビュー