簡體   English   中英

lynda Rails Tut:NoMethodError:#的未定義方法“頁面”

[英]lynda Rails Tut: NoMethodError: undefined method `page' for #<Subject:0x

我正在嘗試使用在此處找到的lynda.com教程來學習Rails:

https://www.lynda.com/Ruby-Rails-tutorials/Ruby-Rails-5-Essential-Training/500551-2.html

到目前為止,遵循起來一直很容易,但是我遇到了麻煩。 在學習協會時,我應該看到以下內容(來自課程視頻的捕獲):

教師成功

相反,我收到以下錯誤:

學生失敗

NoMethodError:#<Subject:0x的未定義方法`page'

我使用的是教師使用的相同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問題,但是其中大多數都在談論'require',我們還沒有解決。 我正在運行與講師相同的Rails開發環境(Rails 5.0.0)。 他正在Mac上運行,並且我有Windows 10計算機,如果有幫助的話。

我不是要任何人“為我修復此問題”,但我只是不知道下一步該怎么看。

您正在使用主題和頁面之間的has_many關聯,這意味着您不能使用

subject.page

相反,您應該使用

subject.pages

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM