ユーザーが投稿した記事(コーディネート全体)に、そのユーザーがアイテムを追加するページを作成したのですが
投稿した記事とアイテムページの紐付けがうまく行かず、undefined method `id' for nil:NilClass
が出てしまいます、、、
- Postモデルのid
- Itemモデルのpost_id
上記を紐付けしたいです。
発生している問題・エラーメッセージ
NoMethodError in ItemsController#create undefined method `id' for nil:NilClass Extracted source (around line #33): 31 @item = Item.new(item_image: params[:item_image], brand: params[:brand], size: params[:size], price: params[:price], 32 products_name: params[:products_name], post_id: params[:post_id]) 33 @item.post_id = "#{@post.id}" 34 @item.user_id="#{current_user.id}" 35 @item.save! 36 redirect_to("/items/#{@item.post_id}/show") Rails.root: /myapp Application Trace | Framework Trace | Full Trace app/controllers/items_controller.rb:33:in `create' Request Parameters: {"authenticity_token"=>"ODNkP4OO3pO9TtOXKvEDSeG/eOPDBlrpOS/1JeKHpryzOIaWBd1oSXMyyOHsmMO2HpSeW87E/GSmzzqwpRQVKQ==", "products_name"=>"テント", "brand"=>"snowpeak", "size"=>"M", "price"=>"300000"}
該当のソースコード
#####ItemsController
hrml
1class ItemsController < ApplicationController 2 def index 3 @user = current_user 4 @items = @user.items 5 end 6 7 def new 8 @item = Item.new 9 end 10 11 def create 12 @item = Item.new(item_image: params[:item_image], brand: params[:brand], size: params[:size], 13 price: params[:price], products_name: params[:products_name], post_id: params[:post_id]) 14 @item.post_id = "#{@post.id}" 15 @item.user_id="#{current_user.id}" 16 @item.save! 17 redirect_to("/items/#{@item.post_id}/show") 18 end 19 20 def show 21 @item = Item.find_by(id: params[:id]) 22 @post = Post.find_by(id: @item.post_id) 23 end 24end
追記
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。