私はここで見つけるlynda.comのチュートリアルを使用して、レールを習得しようとしています:リンダRailsのツタンカーメン:NoMethodError:#<件名のための未定義のメソッド `ページ」:0xの
https://www.lynda.com/Ruby-Rails-tutorials/Ruby-Rails-5-Essential-Training/500551-2.html
それがとても簡単となっていますこれまでのところ、私は悩んでしまった。協会について学ぶとき、私はこの(もちろんビデオからのキャプチャ)を参照してくださいになってる:
代わりに、私は次のエラーを取得:
NoMethodError: undefined method `page' for #<Subject:0x
を私は使用しています講師が使用するのと同じpage.rbとsubject.rb:
# page.rb file
class Page < ApplicationRecord
belongs_to :subject, { :optional => false }
has_many :sections
has_and_belongs_to_many :admin_users
end
# subject.rb file
class Subject < ApplicationRecord
has_many :pages
scope :visible, lambda { where(:visible => true) }
scope :invisible, lambda { where(:visible => false) }
scope :sorted, lambda { order("position ASC") }
scope :newest_first, lambda { order("created_at DESC") }
scope :search, lambda {|query| where(["name LIKE ?", "%#{query}%"]) }
end
はとMySQLデータベースには、次のようになります。
mysql> SHOW TABLES;
+----------------------------------+
| Tables_in_simple_cms_development |
+----------------------------------+
| admin_users_pages |
| ar_internal_metadata |
| pages |
| schema_migrations |
| section_edits |
| sections |
| subjects |
| users |
+----------------------------------+
mysql> DESCRIBE pages;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| subject_id | int(11) | YES | MUL | NULL | |
| name | varchar(255) | YES | | NULL | |
| permalink | varchar(255) | YES | MUL | NULL | |
| position | int(11) | YES | | NULL | |
| visible | tinyint(1) | YES | | 0 | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
mysql> DESCRIBE subjects;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| position | int(11) | YES | | NULL | |
| visible | tinyint(1) | YES | | 0 | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
私はNoMethodErrorに関連するかなりの数のstackoverflowの質問を通して見てきたが、それらのほとんどが「必要」について話して、我々はまだことをカバーしていません。私はインストラクターと同じレール開発環境(Rails 5.0.0)を実行しています。彼はMacで動作しており、Windows 10マシンを持っています(違いがあれば)。
私は「誰かにこの問題を解決してもらう」ことを求めていませんが、次に見たい場所はわかりません。
私のデシベル、私はこのエラーを得た初めて判明を使用する必要があります
を使用できないことを意味している対象とページの間にhas_manyの関連付けを使用しています適切に設定されたページテーブルが欠落していました。その後、私はそれを修正しようとしていたので、1対1の関係を取り戻すために更新されたpage.rbファイルとsubject.rbファイルの最終設定をインポートしました。試してみることを手伝ってくれてありがとう@rajbir。 –