アプリケーションが自分のuser_idに基づいてユーザーのtodoリストのみを表示するtodolistアプリケーションを開発中です。つまり、ユーザーがログインした場合、データベースは同じuser_idを持つtodoリストのみを表示します。定義されていないメソッド `todo_lists 'for nil:NilClass
が、イムこのエラーを取得:
undefined method `todo_lists' for nil:NilClass
# GET /todo_lists/new
def new
@todo_list = current_user.todo_lists.build
end
# GET /todo_lists/1/edit
todo_lists_controller.rb
class TodoListsController < ApplicationController
before_action :set_todo_list, only: [:show, :edit, :update, :destroy]
def index
@todo_lists = TodoList.all
end
def new
@todo_list = current_user.todo_lists.build
end
def create
@todo_list = current_user.todo_lists.build(todo_list_params)
respond_to do |format|
if @todo_list.save
format.html { redirect_to @todo_list, notice: 'Todo list was
successfully created.' }
format.json { render :show, status: :created, location: @todo_list }
else
format.html { render :new }
format.json { render json: @todo_list.errors, status: :unprocessable_entity }
end
end
end
private
def set_todo_list
@todo_list = TodoList.find(params[:id])
end
def todo_list_params
params.require(:todo_list).permit(:title, :description)
end
end
は破壊、更新、ショーや編集のような他の方法を得たが、私はそれが何を持っていないと思うcuzを私はここに貼り付けていけませんこの問題と関係があります。 todo_lists
を@todo_lists
,TodoLists
、todo_list
などのように変更しようとしましたが、いずれも機能しません。
私はさまざまなサイトでソリューションを検索しますが、私は見つけられません。私は実際にはここでの主な問題は、私は上記のように同じ意味(Sと他のもの)と同じ意味で別のコードを持っているcuzを書くためにどのようなコードを理解していないということです。ちょっと愚かしかし、ええ、まだトラインここ
P/S学習レールの2ヶ月^^ SRY私の壊れた英語
を同様のコードを追加し、あなたがcurrent_user' 'のメソッド定義何貼り付けることができますか?基本的に 'current_user'をデバッグする必要があります – AnkitG
@AnkitG' def current_user'を意味しますか?コントローラーで? – Nami
はい、しかし、あなたは 'current_user'を定義しました。あなたの 'current_user'は' nil'です。 – AnkitG