私は、Railsの学習練習としてレコードを削除しようとしていますが、破壊しないでください(どちらも動作しません)。NoMethodError、ActiveRecord 4.0
レールコンソールで、私はsubject.pages.delete(second_page)
を実行し、以下のエラーメッセージが表示されます(破棄しようとしても同じです)。 subject.pagesで
NoMethodError: undefined method `name' for nil:NilClass
です:
=> #<ActiveRecord::Associations::CollectionProxy [#<Page id: 2, subject_id: 1, name: "First Page", permalink: "first", position: 1, visible: false, created_at: "2016-08-19 17:58:02", updated_at: "2016-08-19 17:58:02">, #<Page id: 3, subject_id: 1, name: "Second Page", permalink: "second", position: 2, visible: false, created_at: "2016-08-19 17:59:07", updated_at: "2016-08-19 17:59:07">]>
件名はページを持つ多くの関係へのいずれかを持っています。ページはsubject_objectに属します。
Ed1: 'second_page'はローカル変数です。だから私はRails Consoleを終了しました。私は問題を再現できませんでしたが、まだこのレコードを削除することはできません。
Ed2:私は学習を続けることに決めました。私はERBをsubject.pages.size
に呼び出すまで、何の問題も生じませんでした。ここでも、html.erbファイルがレンダリングされない「NoMethodError」があります。私はページを正しく宣言していることを確認するためにどこをチェックすべきですか?私は教師のコードをダブルチェックし、それはすべて同じように見える(私は何かマイナーが見逃す可能性があります)が、私のアプリでこのエラーを修正する方法に失われています。
Ed3(最終):作成したテーブルを削除して、やり直しました。私は解決策が実際には何だったのかは分かりませんが、コントローラーの関係を変えることが助けになったと思います。助けてくれてありがとう。 Railsの4.0.0、ActiveRecordの4.0.0、MySQLの5.17.14(より多くの情報が必要な場合は、私はすみやかに更新します)
私はお詫び申し上げます。ページはサブジェクトに属します。しかし、私はまだ問題を抱えています。 –