3
人跡罕至:製作實例方法從給定一個子類
class Base
def foo
puts 'foo!!!'
end
end
class Ball < Base
end
我想:
Ball.new.foo
返回一個錯誤:No Method Found
。Base.new.foo
返回:foo!!!
。
我的企圖是:
- 我能做的
protected def foo
,使1作品。然而,這不適用於2. - 我可以這樣做,就像上面給出的那樣,所以2.工作。但是1.不起作用。
任何想法如何使1.和2.工作?
背景的問題
我有一個ApplicationController
行動def routing_error
處理所有剩餘的未定義路線。與此相關的問題是繼承ApplicationController
的所有其他控制器都繼承了該操作,而我希望它不是。我可以創建一個單獨的控制器,只需採取行動def routing_error
,但我覺得這是一種矯枉過正的行爲,只是想知道是否有另一種解決方法。
這解決了我的問題。然而,至於我的問題的根源,這將需要我把'undef_method:foo'放到我所有的控制器上。也許,我現在可以這樣做。謝謝! –
'ObjectSpace.each_object(Class).select {| klass | klass
mudasobwa
@mudasobwa,謝謝!這也將有所幫助:)我只需要確保在所有應用程序代碼的末尾調用此行。 –