0
我無法在我寫的渲染器類上調用任何方法。其方法是否應該暴露?未定義的方法錯誤,但方法在Ruby中定義...爲什麼?
class EntriesController < ApplicationController
def show
BaseRenderer.renderer_for(@entry) # @entry is loaded with a before_filter
end
end
# app/renderers/base_renderer.rb
class BaseRenderer
def renderer_for(entry)
klass ||= "#{entry.entry_type}Renderer".constantize
klass.new(entry)
end
end
我得到NoMethodError at ... undefined method 'renderer_for' for BaseRenderer:Class
但法明確規定。是什麼賦予了?
Duhh,當然!我正在調用類初始化的實例方法!傻我! – Mohamad 2013-04-10 14:04:48
xdazz,你能解釋一下使用'class << self'的好處嗎?是否我們可以將我們所有的班級方法分組在一起,並將它們放在一個地方? – Zippie 2013-04-10 14:07:14
@Mohamad,你有'articlesRenderer'類嗎? – ted 2013-04-10 14:11:38