###実現したい事
参加したグループ内のPostにしたいいね!を、グループ退出時に全て消したいです。
以下、退出時の処理ですが、エラーが出てしまいます。
controller
1def exit 2 @group = Group.find_by(id: params[:id]) 3 @posts = @group.group_posts 4 @posts.each do |post| 5 @like = Like.find_by(user_id: @current_user.id, post_id: post.id) 6 @like.destroy 7 end 8 @group.users.delete(@current_user) 9 flash[:notice] = "退出しました" 10 redirect_to("/") 11 end
Error
1undefined method `destroy' for nil:NilClass
schema
1 create_table "group_posts", force: :cascade do |t| 2 t.integer "group_id" 3 t.integer "post_id" 4 t.datetime "created_at", null: false 5 t.datetime "updated_at", null: false 6 t.index ["group_id"], name: "index_group_posts_on_group_id" 7 t.index ["post_id"], name: "index_group_posts_on_post_id" 8 end 9 10 create_table "group_users", force: :cascade do |t| 11 t.integer "group_id" 12 t.integer "user_id" 13 t.datetime "created_at", null: false 14 t.datetime "updated_at", null: false 15 t.index ["group_id"], name: "index_group_users_on_group_id" 16 t.index ["user_id"], name: "index_group_users_on_user_id" 17 end 18 19 create_table "groups", force: :cascade do |t| 20 t.string "name" 21 t.integer "user_id" 22 t.text "content" 23 t.datetime "created_at", null: false 24 t.datetime "updated_at", null: false 25 end 26 27 create_table "likes", force: :cascade do |t| 28 t.integer "user_id" 29 t.integer "post_id" 30 t.datetime "created_at", null: false 31 t.datetime "updated_at", null: false 32 end
お分かりの方、ぜひアドバイス宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー