簡體   English   中英

這個NoMethodError的原因是什么?

[英]What's the cause of this NoMethodError?

我有以下代碼:

Cms::Page.class_eval do
  def self.fetch_by_slug(slug)
    Rails.cache.fetch("cms_page_#{slug}") { Cms::Page.find_by_slug(slug) }
  end
end

config/initializers/cms_mp.rb

問題是,我在布局文件中調用了fetch_by_slug ,因此,每次請求都會調用它。 在開發模式下,如果我做了一些觸發重新加載類的東西,我會收到undefined method fetch_by_slug for #<Class:0xbff20e8>的錯誤消息undefined method fetch_by_slug for #<Class:0xbff20e8>唯一的解決方法是重啟rails devel服務器。

為什么會這樣? 我該如何解決?

看起來問題是初始化程序僅在服務器啟動時加載。 我你的Cms :: Page重新加載,然后添加的方法我去了。 您應該考慮將此代碼放在初始化程序中,而不是將其重新加載依賴類。

暫無
暫無

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

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