对于nil:/ undefined方法`page_media'的NoMethodError为nil:NilClass

时间:2016-04-20 21:27:35

标签: ruby-on-rails ruby ruby-on-rails-3 error-handling rubygems

/ p中的NoMethodError 未定义的方法`page_media'为nil:NilClass

indexapp /控制器/ 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上解决这个问题?主页无法加载。

3 个答案:

答案 0 :(得分:0)

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

快速修复可能是:

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

答案 1 :(得分:0)

稍微修改一下:

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

答案 2 :(得分:0)

@cms_page是零。因此,检查数据库中是否确实有一个内容文件名等于“homepage.en.yml”的页面。 就像卡森科尔指出的那样(经过一些修改......):

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