NoMethodError at / undefined method `page_media' for nil:NilClass

NoMethodError at / undefined method `page_media' for nil:NilClass

NoMethodError 在 / nil:NilClass

的未定义方法“page_media”

indexapp/controllers/homepage_controller.rb

  before_action :set_track_page_status
  def index
     @cms_page     = Page.find_by_content_filename("homepage.en.yml")
     @homepage_cms = HomepageCms.first
     @page_medium  = @cms_page.page_media.order("id ASC")
     @roots        = Category.roots
  end
end

如何解决 Ror 上的这个问题?主页未加载。

@cms_page 似乎没有任何关联的 page_media

快速修复可能是:

@page_medium  = @cms_page.try(:page_media).try(:order, "id ASC")

稍微修改一下:

@page_medium  = @cms_page.page_media.order("id ASC") if @cms_page.page_media

@cms_page 为零。因此,请检查数据库中是否真的有内容文件名等于 "homepage.en.yml" 的页面。 就像 Carson Cole 指出的那样(经过一些修改..):

@page_medium  = @cms_page.page_media.order("id ASC") if @cms_page